Oracle EBS FORM界面获取某LOV的方法
Summer.zeng created on 2014/5/14
大家在维护和使用ORACLE FORM的时候,经常会想查看某值集的SQL语句到底是什么。这里跟大家分享一中方法。
实例:查看采购合同界面,需求事业部字段所使用的SQL语句。
1. 打开对应FORM界面,获得当前SESSION (会话)对应的sid,并记录下来。
2. 回到要查询LOV界面随意输入数据,触发LOV的查询.
注意:不能关闭此LOV界面
3. 打开PL/SQL 工具,用如下SQL语句查询上一条和当前SQL的SQLADDRESS:
SELECT s.prev_sql_addr,s.sql_address FROM v$session s WHERE s.sid = 1509;--这里为上面查询
到的会话SID。
4. 根据SQLaddress查询对应的SQL语句
SELECT sql_text FROM v$sqltext_with_newlines t WHERE t.address = '00000001050F7928' ORDER BY t.piece;
把得到的文本复制,张贴出来,即为此LOV对应的SQL取数语句。如下:
SELECT hou.organization_id, hou.name
FROM hr_organization_units hou, hr_organization_information hoi WHERE hou.organization_id = hoi.organization_id AND hoi.org_information1 = 'HR_ORG' AND hoi.org_information2 = 'Y'
ANDtrunc(SYSDATE) BETWEENnvl(hou.date_from, trunc(SYSDATE)) AND nvl(hou.date_to, trunc(SYSDATE))
TIP:这种方式,不是万能的,有些LOV是在FORM开发的时候动态生成的,遇到这种值集就没法用这种方式取到了,方法不是没有,但那种也是极少数的。

