实现代码如下:
SELECT;;;SID,;DECODE;(BLOCK,;0,;'NO',;'YES');blocker,
DECODE;(request,;0,;'NO',;'YES');waiter
FROM;v$lock
WHERE;request;>;0;OR;BLOCK;>;0
ORDER;BY;BLOCK;DESC;
SELECT;;;bs.username;"Blocking;User",;bs.username;"DB;User",
ws.username;"Waiting;User",;bs.SID;"SID",;ws.SID;"WSID",
bs.serial#;"Serial#",;bs.sql_address;"address",
bs.sql_hash_value;"Sql;hash",;bs.program;"Blocking;App",
ws.program;"Waiting;App",;bs.machine;"Blocking;Machine",
ws.machine;"Waiting;Machine",;bs.osuser;"Blocking;OS;User",
ws.osuser;"Waiting;OS;User",;bs.serial#;"Serial#",
ws.serial#;"WSerial#",
DECODE;(wk.TYPE,
'MR',;'Media;Recovery',
'RT',;'Redo;Thread',
'UN',;'USER;Name',
'TX',;'Transaction',
'TM',;'DML',
'UL',;'PL/SQL;USER;LOCK',
'DX',;'Distributed;Xaction',
'CF',;'Control;FILE',
'IS',;'Instance;State',
'FS',;'FILE;SET',
'IR',;'Instance;Recovery',
'ST',;'Disk;SPACE;Transaction',
'TS',;'Temp;Segment',
'IV',;'Library;Cache;Invalidation',
'LS',;'LOG;START;OR;Switch',
'RW',;'ROW;Wait',
'SQ',;'Sequence;Number',
'TE',;'Extend;TABLE',
'TT',;'Temp;TABLE',
wk.TYPE
);lock_type,
DECODE;(hk.lmode,
0,;'None',
1,;'NULL',
2,;'ROW-S;(SS)',
3,;'ROW-X;(SX)',
4,;'SHARE',
5,;'S/ROW-X;(SSX)',
6,;'EXCLUSIVE',
TO_CHAR;(hk.lmode)
);mode_held,
DECODE;(wk.request,
0,;'None',
1,;'NULL',
2,;'ROW-S;(SS)',
3,;'ROW-X;(SX)',
4,;'SHARE',
5,;'S/ROW-X;(SSX)',
6,;'EXCLUSIVE',
TO_CHAR;(wk.request)
);mode_requested,
TO_CHAR;(hk.id1);lock_id1,;TO_CHAR;(hk.id2);lock_id2,
DECODE
(hk.BLOCK,
0,;'NOT;Blocking',;/**//*;Not;blocking;any;other;processes;*/
1,;'Blocking',;;;;;/**//*;This;lock;blocks;other;processes;*/
2,;'Global',;;/**//*;This;lock;is;global,;so;we;can't;tell;*/
TO_CHAR;(hk.BLOCK)
);blocking_others
FROM;v$lock;hk,;v$session;bs,;v$lock;wk,;v$session;ws
WHERE;hk.BLOCK;=;1
AND;hk.lmode;!
=;0
AND;hk.lmode;!=;1
AND;wk.request;!=;0
AND;wk.TYPE(+);=;hk.TYPE
AND;wk.id1(+);=;hk.id1
AND;wk.id2(+);=;hk.id2
AND;hk.SID;=;bs.SID(+)
AND;wk.SID;=;ws.SID(+)
AND;(bs.username;IS;NOT;NULL)
AND;(bs.username;<>;'SYSTEM')
AND;(bs.username;<>;'SYS')
ORDER;BY;1;