【DB筆試面試491】如何判斷一個存儲過程是否正在運行?
- 2019 年 10 月 11 日
- 筆記
在Oracle中,如何判斷一個存儲過程是否正在運行?
答案部分
有兩種方式可以判斷一個存儲過程是否正在運行,其查詢SQL語句分別如下所示,若有結果返回,則說明存儲過程正在運行。
方法1:
SELECT A.SID, B.SERIAL#, A.OWNER, A.OBJECT, A.TYPE, B.SERVER, B.MODULE, B.ACTION, B.LOGON_TIME FROM V$ACCESS A, V$SESSION B WHERE A.SID = B.SID(+) AND A.TYPE = 'PROCEDURE' AND B.STATUS = 'ACTIVE' AND A.OBJECT = 'P_TEST_LHR' --注意這裡修改成存儲過程的名稱 ;
方法2:
SELECT * FROM V$DB_OBJECT_CACHE WHERE TYPE = 'PROCEDURE' AND NAME = 'P_TEST_LHR' AND LOCKS > 0 AND PINS > 0;
本文選自《Oracle程序員面試筆試寶典》,作者:李華榮。
