Form界面,如何在不看源碼的情況下查看LOV代碼

問題:

   一般我們要查看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;




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章