一直有实施顾问询问我XXForm的XX LOV是什么逻辑,取数SQL是什么来着,以前比较笨,打开Form去看,运气好点,碰到LOV和Record Group都是固定的就一下找到了,运气不好有可能LOV是动态绑定到ITEM上,而LOV的RG是动态生成,想找个查询的SQL,可能要吐血,下面介绍一个最简单的方法,方便快捷而准确:
1.打开个性化定义界面(如果没有权限,到系统配置文件设置中,查看是否是"隐藏诊断菜单"被设置成了是),所以定义一个个性化,action如下图所示:
消息文本中的SQL语句是:"=(SELECT t.sid FROM v$mystat t where rownum = 1)",点击验证,获得当前SESSION 对应的sid,记录下来,例子中是102;
2.回到需要查询LOV界面随意输入数据,触发LOV的查询.
3.打开PL/SQL Dev,查询上一条和当前SQL的SQLADDRESS:
SELECT s.prev_sql_addr,s.sql_address FROM v$session s WHERE s.sid = 102;
(有可能查询的间隔比较短,当前执行的SQL语句在sql_address 字段中)
4.根据SQLaddress查询对应的SQL语句
SELECT sql_text FROM v$sqltext_with_newlines t WHERE t.address = '0000000390E496F0' ORDER BY t.piece;
查看LOV中的查询语句
最新推荐文章于 2024-11-15 19:33:03 发布
本文介绍了一种简便快捷且准确的方法,用于查找Oracle Forms中的LOV逻辑和对应的取数SQL,包括打开个性化定义界面、验证获取SID、查询SQLADDRESS和SQL_TEXT等步骤。



186

被折叠的 条评论
为什么被折叠?



