-- 使用下面语句看看你的oracle数据库是否存在死锁
select sql_text from v$sql where hash_value in (select sql_hash_value from v$session where sid in (select session_id from v$locked_object));
-- 查看死锁占用的会话和进程
SELECT s.username,l.OBJECT_ID,l.SESSION_ID,s.SERIAL#,
l.ORACLE_USERNAME,l.OS_USER_NAME,l.PROCESS
FROM V$LOCKED_OBJECT l,V$SESSION S WHERE l.SESSION_ID=S.SID;
-- 杀死锁
alter system kill session '911,62850';
-- 给用户赋权(提示无权限时操作)
grant alter system to N2ADMIN
DECLare str VARCHAR2(1000);
BEGIN
FOR c1 in (select 'ALTER SYSTEM KILL SESSION '''||A.SID||','||A.SERIAL# || ''' ' as sql_Str
from V$session A,V$LOCK B,Dba_Objects C
where A.SID=B.SID
AND B.ID1=c.object_id
and object_name='T_OQA_BATH'
) LOOP
str:=c1.sql_Str;
EXECUTE IMMEDIATE str;
END LOOP;
END;