Oracle如何确认存储过程正在被调用

单机的oracle 11g,请问怎么查看存储过程是否正在被调用呢?
我来答
添加附件
收藏
复制链接
微信扫码分享

在小程序上查看
分享
添加附件
问题补充
2条回答
默认
最新
如果存储过程正在被调用,去编译它,会卡住,会话等待事件为 library cache pin。
另外,如果不去编译它,可以尝试使用如下sql来检查持有该对象的会话
SELECT a.SID,
a.username,
a.program,
b.addr,
b.kglpnadr,
b.kglpnuse,
b.kglpnses,
b.kglpnhdl,
b.kglpnlck,
b.kglpnmod,
b.kglpnreq
FROM v$session a, x$kglpn b
WHERE a.saddr = b.kglpnuse
AND b.kglpnmod <> 0
and kglpnhdl in (SELECT kglhdadr
FROM x$kglob
WHERE kglnaobj = 'TEST_20220524');


打赏 0

是的,这个x开头的表需要sys用户才能查,引号里的字符串是存储过程对象名称
回答交流
Markdown
一级标题
二级标题
三级标题
四级标题
五级标题
六级标题
添加图片链接
上传图片
导航目录
Markdown语法参考
请输入正文
提示
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
