select sn.username, m.sid,sn.serial#, m.type,
decode (m.lmode,
0, 'none',
1, 'null',
2, 'row share',
3, 'row excl.',
4, 'share',
5, 's/row excl.',
6, 'exclusive',
lmode, ltrim (to_char (lmode, '990'))
) lmode,
decode (m.request,
0, 'none',
1, 'null',
2, 'row share',
3, 'row excl.',
4, 'share',
5, 's/row excl.',
6, 'exclusive',
request, ltrim (to_char (m.request, '990'))
) request,
m.id1, m.id2
from v$session sn, v$lock m
where (sn.sid = m.sid and m.request != 0) --存在锁请求,即被阻塞
or ( sn.sid = m.sid --不存在锁请求,但是锁定的对象被其他会话请求锁定
and m.request = 0
and lmode != 4
and (id1, id2) in (
select s.id1, s.id2
from v$lock s
where request != 0 and s.id1 = m.id1
and s.id2 = m.id2)
)
order by id1, id2, m.request;
通过以上查询知道了sid和 serial#就可以开杀了
alter system kill session 'sid,serial#';