在oracle的存储过程中,如何获取最近一次执行的sql操作
1个回答
展开全部
--先来一个完整代码:
SELECT
a.SQL_TEXT,
u.USERNAME,
TRUNC(a.SHARABLE_MEM / 1024, 2) "SHARABLE_MEM (KB)",
TRUNC(a.PERSISTENT_MEM / 1024, 2) "PERSISTENT_MEM (KB)",
TRUNC(a.RUNTIME_MEM / 1024, 2) "RUNTIME_MEM (KB)",
a.SORTS,
a.VERSION_COUNT,
a.LOADED_VERSIONS,
a.OPEN_VERSIONS,
a.USERS_OPENING,
a.FETCHES,
a.EXECUTIONS,
a.USERS_EXECUTING,
a.LOADS,
a.FIRST_LOAD_TIME,
a.INVALIDATIONS,
a.PARSE_CALLS,
a.DISK_READS,
a.BUFFER_GETS,
a.ROWS_PROCESSED,
a.COMMAND_TYPE,
a.OPTIMIZER_MODE,
a.PARSING_USER_ID,
a.PARSING_SCHEMA_ID,
a.KEPT_VERSIONS,
rawtohex(a.ADDRESS) "ADDRESS",
a.HASH_VALUE,
a.MODULE,
a.MODULE_HASH,
a.ACTION,
a.ACTION_HASH,
a.SERIALIZABLE_ABORTS,
a.CPU_TIME,
a.ELAPSED_TIME,
a.IS_OBSOLETE,
a.CHILD_LATCH
FROM
sys.v_$sqlarea a,
sys.all_users u
WHERE
A.parsing_user_id = U.user_id;
--这里是问题的需求:
SELECT a.SQL_TEXT FROM sys.v_$sqlarea a, sys.all_users u
WHERE A.parsing_user_id = U.user_id and rownum=1;
--说明:你得存储过程得有访问这个两个表或视图的权限。
--用dba用户授权这两个表或视图给存储过程的用户。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询