우선 사용자의 계정으로 lock이 걸렸는지 여부를 먼저 확인한다.

 

SELECT * FROM v$locked_object WHERE oracle_username = 'user_name' ;

 

Kill을 하기 위해서는 Session_id와 serial_no가 필요하다.

아래의 쿼리로 구할 수 있다. (Oracle 9i기준)

SELECT a.session_id as SESSION_ID
             , b.serial# as SERIAL_NO
             , a.os_user_name as OS_USER_NAME
             , a.oracle_username as ORACLE_USERNAME
             , b.status as STATUS
FROM    v$locked_object a, v$session b
WHERE  a.session_id = b.sid
;

아래의 쿼리는 실제로 Kill을 해주는 부분이다.

alter system kill session 'SESSION_ID,SERIAL_NO'

 

단, Kill 명령은 적절한 권한이 없다면 불가능하다. ^^