SELECT /*+ RULE */
ls.osuser os_user_name,
ls.username user_name,
DECODE (ls.TYPE,
'RW', 'Row wait enqueue lock',
'TM', 'DML enqueue lock',
'TX', 'Transaction enqueue lock',
'UL', 'User supplied lock')
lock_type,
o.object_name object,
DECODE (ls.lmode,
1, NULL,
2, 'Row Share',
3, 'Row Exclusive',
4, 'Share',
5, 'Share Row Exclusive',
6, 'Exclusive',
NULL)
lock_mode,
o.owner,
ls.sid,
ls.serial# serial_num,
ls.id1,
ls.id2
FROM sys.dba_objects o,
(SELECT s.osuser,
s.username,
l.TYPE,
l.lmode,
s.sid,
s.serial#,
l.id1,
l.id2
FROM v$session s, v$lock l
WHERE s.sid = l.sid) ls
WHERE o.object_id = ls.id1 AND o.owner <> 'SYS'
ORDER BY o.owner, o.object_name;