在oracle的存储过程中,如何获取最近一次执行的sql操作

 我来答
hongyaofu
2015-10-12 · TA获得超过1088个赞
知道大有可为答主
回答量:1227
采纳率:87%
帮助的人:529万
展开全部
--先来一个完整代码:
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用户授权这两个表或视图给存储过程的用户。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式