Oracle数据库查询对象是否被锁定及解锁

2014-11-24 17:16:27 · 作者: · 浏览: 0

--解锁语句
DECLARE
V_SQL VARCHAR2(500);
CURSOR C_SESSION IS
SELECT B.OBJECT_NAME,
B.OWNER,
C.SID AS SESSION_ID,
C.SERIAL# AS SERIAL#,
C.OSUSER,
C.MACHINE,
C.TERMINAL
FROM V$LOCKED_OBJECT A, DBA_OBJECTS B, V$SESSION C
WHERE A.OBJECT_ID = B.OBJECT_ID AND A.SESSION_ID = C.SID
AND C.STATUS = 'INACTIVE' AND C.TYPE = 'USER'
ORDER BY 1;

BEGIN
FOR GET_SESSION IN C_SESSION
LOOP
BEGIN
V_SQL:='ALTER SYSTEM KILL SESSION '''||GET_SESSION.SESSION_ID||','||GET_SESSION.SERIAL#||''' IMMEDIATE';
EXECUTE IMMEDIATE V_SQL;
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
END LOOP;
END;
/