問題:
一般我們要查看Form裏的某個LOV對應的SQL代碼時,要打開Form源代碼查看。但如果沒有fmb文件,或者不想打開fmb文件查找了話,我們可以通過以下的代碼來查看LOV的SQL代碼。
解決方法:
首先打開對應了Form界面上的LOV,然後在PL/SQL裏執行如下代碼:
--p_sid :SID(在Form界面,幫助->關於oracle應用產品獲得SID值) DECLARE CURSOR cur_lov_sql(p_pre_sql_addr VARCHAR2) IS SELECT t.sql_text FROM v$sqltext_with_newlines t WHERE t.address = p_pre_sql_addr ORDER BY t.piece; -- l_lov_sql VARCHAR2(2400); l_prev_sql_addr VARCHAR2(200); BEGIN BEGIN SELECT v.prev_sql_addr INTO l_prev_sql_addr FROM v$session v WHERE v.sid = &sid; EXCEPTION WHEN OTHERS THEN dbms_output.put_line('get prev sql addr error,' || SQLCODE || ':' || SQLERRM); END; -- FOR rec IN cur_lov_sql(l_prev_sql_addr) LOOP l_lov_sql := nvl(l_lov_sql, '') || rec.sql_text; END LOOP; -- dbms_output.put_line('lov查詢sql爲:'); dbms_output.put_line(l_lov_sql); END;