SQL>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