2009年4月2日 星期四

在 Oracle 下查詢 LOCK 的 USER

常常被程式師要求查詢誰在LOCK TABLE
之前每次要用到都去查書
這一次就把它記下來 下次直接拿來用就好

在 oracle 有提供一個 VIEW 可以查詢 V$LOCKED_OBJECT

各欄位說明 :
============================
XIDUSN 回覆區段編號
XIDSLOT 插槽編號
XIDSQN 序號
OBJECT_ID 被鎖定物件編號
SESSION_ID SESSION 編號
ORACLE_USERNAME ORACLE的使用者
OS_USER_NAME 作業系統的使用者
PROCESS 作業系統的行程代碼
LOCKED_MODE 鎖定模式

這麼多欄位 我只用到 SESSION_ID , ORACLE_USERNAME , OS_USER_NAME

SQL 語法如下 :

SELECT SESSION_ID,ORACLE_USERNAME,OS_USER_NAME FROM V$LOCKED_OBJECT

對照 對方給你的 ORACLE_USERNAME 及 OS_USER_NAME 查到 SESSION_ID
在把它 KILL PROCESS 就可以 UNLOCK

跟大家分享

沒有留言: