2

我正在尝试找出 oracle 表单正在调用哪些包/函数。我拥有对数据库的 sysdba 访问权限。有没有简单的方法来确定这一点?我知道一个非常粗略的方法(使用文件写入包将文本文件写入文件系统),但我确信必须有一些更容易监控 SQL 的方法以及调用什么?

我正在使用 SQL 开发人员。

任何帮助表示赞赏!

4

1 回答 1

0

这是我自己的会话监视器查询,看一下:

SELECT SUBSTR(program, 1, 15), SUBSTR(event, 1, 21), DBMS_LOB.SUBSTR(WRH.sql_text, 100),
       (   TO_CHAR(FLOOR((SYSDATE - logon_time) * 24), 'FM000')
        || ':'
        || TO_CHAR(FLOOR(MOD((SYSDATE - logon_time) * 1440, 60)), 'FM00')
        || ':'
        || TO_CHAR(MOD((SYSDATE - logon_time) * 86400, 60), 'FM00'))
        "Elapsed Time", --WRS.cpu_cost,WRS.operation,WRS.options,WRS.position,WRS.search_columns,WRS.cost,WRS.bytes,WRS.TIME,
       schemaname, terminal, plsql_entry_object_id, osuser,
       process, username, MODULE, ROW_WAIT_OBJ#, "ROW_WAIT_FILE#", "ROW_WAIT_BLOCK#", sid,
       USER#, command, SCHEMA#, logon_time, blocking_session_status, "SEQ#", wait_class,
       state, service_name
  FROM V$SESSION SS, SYS.WRH$_SQLTEXT WRH                         --,SYS.WRH$_SQL_PLAN WRS
 WHERE WRH.sql_id = SS.sql_id
   --AND program LIKE 'f90runm@node%'
   --AND username NOT IN ('SYS', 'SYSMAN')
ORDER BY program

使用 DBMS_LOB.SUBSTR(WRH.sql_text, 100) 在当前活动中取得更好的结果。我认为你最好使用 Sql navigator 或 Toad,因为它们有很好的会话浏览器。

于 2012-07-08T19:24:09.337 回答