2.select * from v$session t where t.SID='你查到的Session_id'; //--找到这个Session的SERIAL#
3.alter system kill session '你查到的Session_id,你查到的SERIAL#' //杀掉锁住的
参考
http://spyhost.blog.163.com/blog/static/11921405201201110553920/
批量杀死全部死锁(需要在程序窗口执行)
declare cursor mycur is
select b.sid,b.serial#
from v$locked_object a,v$session b
where a.session_id = b.sid group by b.sid,b.serial#;
begin
for cur in mycur
loop
execute immediate ( 'alter system kill session '''||cur.sid || ','|| cur.SERIAL# ||''' ');
end loop;
end;
----------------------------------------
最近是用的:
查看详细情况
SELECT l.session_id sid, s.serial#, l.locked_mode, l.oracle_username, s.user#,
l.os_user_name,s.machine, s.terminal,a.sql_text, a.action
FROM v$sqlarea a,v$session s, v$locked_object l
WHERE l.session_id = s.sid
AND s.prev_sql_addr = a.address
ORDER BY sid, s.serial#;
-------------------------
-------
关程序后执行
SELECT l.session_id sid, s.serial# FROM v$sqlarea a,v$session s, v$locked_object l
WHERE l.session_id = s.sid
AND s.prev_sql_addr = a.address
ORDER BY sid, s.serial#;
alter system kill session '5724,11271' ;