- 论坛徽章:
- 0
|
20可用积分
怎么查询某个存储过程的执行状态?是否在运行中?
-----------------------------------------------------------
可能ILoveMK的说法是正确的:
1. x$kglpn的KGLPNMOD字段为2时就代表存储过程在执行
---------------------------------
2. SELECT '(' || s.sid || ') - ' || username AS "(session) - username", p.KGLPNMOD as proc_state,o.kglhdnsp
FROM V$SESSION s, sys.x$kglob o, sys.x$kglpn p
WHERE upper(o.kglnaobj) LIKE upper('%p_insert_tbl%')
AND p.kglpnhdl = o.kglhdadr
AND s.SADDR = p.kglpnuse
and o.KGLHDNSP=1
and p.KGLPNMOD=2
[ 本帖最后由 TOADLover 于 2009-9-3 13:43 编辑 ] |
最佳答案
查看完整内容
不好意思,一不小心写错了,正确的sql如下:SELECT '(' || s.sid || ') - ' || username||' is running '||o.kglnaobjFROM V$SESSION s, sys.x$kglob o, sys.x$kglpn pWHERE upper(o.kglnaobj) LIKE upper('%test%')AND p.kglpnhdl = o.kglhdadrAND s.SADDR = p.kglpnuseand o.KGLHDNSP=1and p.KGLPNMOD=2;[ 本帖最后由 ILoveMK 于 2009-9-3 13:30 编辑 ]
|