2026-03-12 20:23:15
This commit is contained in:
122
star/locked_objects.sql
Normal file
122
star/locked_objects.sql
Normal file
@@ -0,0 +1,122 @@
|
||||
/*
|
||||
* Author : Vishal Gupta
|
||||
* Purpose : Displays currently locked objects in database
|
||||
* Parameters : 1 - owner (% - wildchar, \ - escape char) , this could also be passed as OWNER.OBJECT_NAME
|
||||
* 2 - Object name (% - wildchar, \ - escape char)
|
||||
* 3 - Object Type (% - wildchar, \ - escape char)
|
||||
*
|
||||
* Revision History:
|
||||
* ===================
|
||||
* Date Author Description
|
||||
* --------- ------------ -----------------------------------------
|
||||
* 29-Jan-16 Vishal Gupta Switched from gv$locked_objects to gv$lock, as
|
||||
* earlier view was giving information about locks on
|
||||
* temporary tables (with preserve on commit rows setting).
|
||||
* - Also added machine and process in the output
|
||||
* 06-Sep-12 Vishal Gupta Added where clause to add more filtering
|
||||
* 09-Aug-12 Vishal Gupta Created
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
/************************************
|
||||
* INPUT PARAMETERS
|
||||
************************************/
|
||||
UNDEFINE owner
|
||||
UNDEFINE object_name
|
||||
UNDEFINE object_type
|
||||
UNDEFINE WHERE_CLAUSE
|
||||
|
||||
DEFINE owner="&&1"
|
||||
DEFINE object_name="&&2"
|
||||
DEFINE object_type="&&3"
|
||||
DEFINE WHERE_CLAUSE="&&4"
|
||||
|
||||
|
||||
COLUMN _owner NEW_VALUE owner NOPRINT
|
||||
COLUMN _object_name NEW_VALUE object_name NOPRINT
|
||||
COLUMN _object_type NEW_VALUE object_type NOPRINT
|
||||
|
||||
set term off
|
||||
|
||||
SELECT DECODE(UPPER('&&owner'),'','%','&&owner') "_owner"
|
||||
, DECODE(UPPER('&&object_name'),'','%','&&object_name') "_object_name"
|
||||
, DECODE(UPPER('&&object_type'),'','%','&&object_type') "_object_type"
|
||||
FROM DUAL;
|
||||
|
||||
SELECT CASE
|
||||
WHEN INSTR('&&owner','.') != 0 THEN SUBSTR(UPPER('&&owner'),1,INSTR('&&owner','.')-1)
|
||||
ELSE DECODE(UPPER('&&owner'),'','%',UPPER('&&owner'))
|
||||
END "_owner"
|
||||
, CASE
|
||||
WHEN INSTR('&&owner','.') != 0 THEN SUBSTR(UPPER('&&owner'),INSTR('&&owner','.')+1)
|
||||
ELSE DECODE(UPPER('&&object_name'),'','%',UPPER('&&object_name'))
|
||||
END "_object_name"
|
||||
FROM DUAL;
|
||||
set term on
|
||||
|
||||
|
||||
|
||||
PROMPT **************************************************************
|
||||
PROMPT * L O C K E D O B J E C T S
|
||||
PROMPT *
|
||||
PROMPT * Input Parameters
|
||||
PROMPT * - Owner = '&&owner'
|
||||
PROMPT * - Object Name = '&&object_name'
|
||||
PROMPT * - Object Type = '&&object_type'
|
||||
PROMPT * - Where Clause = "&&WHERE_CLAUSE"
|
||||
PROMPT **************************************************************
|
||||
|
||||
COLUMN object_name HEADING "ObjectName" FORMAT a40
|
||||
COLUMN object_type HEADING "ObjectType" FORMAT a10 TRUNCATED
|
||||
COLUMN locked_mode HEADING "LockedMode" FORMAT a10
|
||||
COLUMN sid HEADING "SID" FORMAT 99999
|
||||
COLUMN inst_id HEADING "I#" FORMAT 99
|
||||
COLUMN spid HEADING "SPID" FORMAT a6
|
||||
COLUMN status HEADING "Status" FORMAT a8
|
||||
COLUMN state HEADING "State" FORMAT a12 TRUNCATED
|
||||
COLUMN logon_time HEADING "Logon Time" FORMAT a18
|
||||
COLUMN username HEADING "UserName" FORMAT a20
|
||||
COLUMN osuser HEADING "OS User" FORMAT a15 TRUNCATED
|
||||
COLUMN MACHINE HEADING "Machine" FORMAT a20 TRUNCATED
|
||||
COLUMN process HEADING "Process" FORMAT a11
|
||||
COLUMN program HEADING "Program" FORMAT a18 TRUNCATED
|
||||
COLUMN event HEADING "Event" FORMAT a30 TRUNCATED
|
||||
COLUMN last_call_et HEADING "LastCall|(sec)" FORMAT a12
|
||||
COLUMN sql_child_number HEADING "SQL|Child|No" FORMAT 99
|
||||
|
||||
SELECT o.owner || '.' || o.object_name object_name
|
||||
, o.object_type
|
||||
, DECODE(l.lmode,
|
||||
0, 'None', /* Mon Lock equivalent */
|
||||
1, 'Null', /* N */
|
||||
2, 'Row-S (SS)', /* L */
|
||||
3, 'Row-X (SX)', /* R */
|
||||
4, 'Share', /* S */
|
||||
5, 'S/Row-X (SSX)', /* C */
|
||||
6, 'Exclusive', /* X */
|
||||
TO_CHAR(l.lmode)) locked_mode
|
||||
, s.sid sid
|
||||
, s.inst_id
|
||||
, s.status
|
||||
, s.username
|
||||
, s.machine
|
||||
, s.osuser
|
||||
, s.program
|
||||
, s.process
|
||||
, s.event
|
||||
FROM gv$lock l
|
||||
JOIN dba_objects o ON o.object_id = l.id1
|
||||
JOIN gv$session s ON s.inst_id = l.inst_id AND s.sid = l.sid
|
||||
WHERE o.owner like '&&owner' ESCAPE '\'
|
||||
AND o.object_name like '&&object_name' ESCAPE '\'
|
||||
AND o.object_type like '&&object_type' ESCAPE '\'
|
||||
&&WHERE_CLAUSE
|
||||
ORDER BY object_name
|
||||
;
|
||||
|
||||
|
||||
UNDEFINE owner
|
||||
UNDEFINE object_name
|
||||
UNDEFINE object_type
|
||||
UNDEFINE WHERE_CLAUSE
|
||||
Reference in New Issue
Block a user