如何获取Oracle EBS Form中后台取数SQL(包括LOV)

如题所述

欢迎指正!mes="" new="" roman";="" mso-hansi-font-family:"times="" roman""="">在Oracle EBS中,如何从Form界面中知道或获取后台所运行的相关的SQL语句。方法一:在EBS界面的菜单上Help--------diagnostic----examine----- Block:System Field: Last_Query Value:_this is what yuou want__ 这个方法基本能够捕捉到大部分的SQL,但是前提是当前的这个From或LOV刚过行了查询事件。之前在一次面试中问到相关的方法,只是那个时候自己还不知道这个方法。 比如:想要找到PO对应的Tax相关的取数SQL,在Oracle EBS 11i里可能不是那么容易,因为弹出来的Tax界面已经另外一个Form上了(R12好像是显示在HTML上,不太记得了),我想即使把相关的From下载来分析也不是好办法,但是前面的这种方法却很轻松的获取想要的SQL语句。 方法二: 查找LOV的SQL脚本的方法。A. get the session Id(SID) from the formhelp-------about oracle application-------session IdB. open lov to fire the triggerC. get the lov sql with the flowing sql statement.SELECT s.pre_sql_addr,s.sql_addr,t.sql_textFROM v$sqltext_with_newlines t, V$session sWHERE 1 = 1 And t.address = s.prev_sql_addr And s.sid = v_SID(we get the SID from oracle form);稍微的组织下就是想要的SQL。 总结:1. 方法一是很实用的方法,也应该是最为常用的,值得推荐。2. 方法二对于LOV来说,最为适合的一种方法。
温馨提示:答案为网友推荐,仅供参考
相似回答