查询用户所持有的TX锁
select username, v$lock.sid, trunc(id1 / power(2, 16)) rbs, bitand(id1, to_number('ffff', 'xxxx')) + 0 slot, id2 seq, lmode, request from v$lock, v$session where v$lock.type = 'TX' and v$lock.sid = v$session.sid and v$session.username = 'TEST'; 一个会话阻塞另一个会话 select (select username from v$session where sid = a.sid) blocker, a.sid, ' is blocking ', (select username from v$session where sid = b.sid) blockee, b.sid from v$lock a, v$lock b where a.block = 1 and b.request > 0 and a.id1 = b.id1 and a.id2 = b.id2;
查询用户所持有的TM锁
select (select username from v$session where sid = v$lock.sid) username, sid, id1, id2, lmode, request, block, v$lock.type from v$lock where sid = (select sid from v$mystat where rownum = 1)
查询会话所持有的对象parse lock
sys用户安装DBA_DDL_LOCKS视图,Install this and other locking views by running the catblock.sql script found in the directory [ORACLE_HOME]/rdbms/admin
select session_id sid, owner, name, type, mode_held held, mode_requested request from dba_ddl_locks;