我正在尝试找出 oracle 表单正在调用哪些包/函数。我拥有对数据库的 sysdba 访问权限。有没有简单的方法来确定这一点?我知道一个非常粗略的方法(使用文件写入包将文本文件写入文件系统),但我确信必须有一些更容易监控 SQL 的方法以及调用什么?
我正在使用 SQL 开发人员。
任何帮助表示赞赏!
这是我自己的会话监视器查询,看一下:
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,因为它们有很好的会话浏览器。