SET ECHO off 
REM NAME:   TFSMLOCK.SQL 
REM USAGE:"@path/tfsmlock" 
REM ------------------------------------------------------------------------ 
REM REQUIREMENTS: 
REM    SELECT on V_$LOCK, V_$SESSION, USER$, OBJ$ 
REM ------------------------------------------------------------------------ 
REM PURPOSE: 
REM    The following locking information script provides the following  
REM    items: SessionID, Serial #, Username, Terminal, Resource  
REM    Type, Table, Owner, ID1, ID2, Lock Held, Lock Requested. 
REM 
REM    The TFTS series contains scripts to provide (less detailed) lock  
REM    information in a simpler format (TFSLLOCK.SQL), and a script which  
REM    breaks the details out further (TFSCLOCK.SQL). 
REM ------------------------------------------------------------------------ 
REM EXAMPLE: 
REM    Too complex to fit a representative sample here. 
REM ------------------------------------------------------------------------  
REM DISCLAIMER:  
REM    This script is provided for educational purposes only. It is NOT   
REM   supported by Oracle World Wide Technical Support.  
REM    The script has been tested and appears to work as intended.  
REM You should always run new scripts on a test instance initially.  
REM ------------------------------------------------------------------------ 
REM Main text of script follows:  set pagesize 60 
set linesize 200 feedback off heading on 
column sid format 9999
column res heading 'Resource Type' format a20 
column id1 format 9999999 
column id2 format 9999999 
column lmode heading 'Lock Held' format a14 
column request heading 'Lock Req.' format a14 
column serial# format 99999 
column username  format a10  
column terminal heading Term format a9
column tab format a10 
column owner format a8 
select  l.sid,s.serial#,s.username,s.terminal, 
        decode(l.type,'RW','RW - Row Wait Enqueue', 
                    'TM','TM - DML Enqueue', 
                    'TX','TX - Trans Enqueue', 
                    'UL','UL - User',l.type||'System') res, 
        substr(t.name,1,10) tab,u.name owner, 
        l.id1,l.id2, 
        decode(l.lmode,1,'No Lock', 
                2,'Row Share', 
                3,'Row Exclusive', 
                4,'Share', 
                5,'Shr Row Excl', 
                6,'Exclusive',null) lmode, 
        decode(l.request,1,'No Lock', 
                2,'Row Share', 
                3,'Row Excl', 
                4,'Share', 
                5,'Shr Row Excl', 
                6,'Exclusive',null) request 
from v$lock l, v$session s, 
sys.user$ u,sys.obj$ t 
where l.sid = s.sid 
and s.type != 'BACKGROUND' 
and t.obj# = l.id1 
and u.user# = t.owner# 
/ 
set feedback on 
