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;




你可能感兴趣的:(oracle,form,ebs,查看LOV代码)