2026-03-12 20:23:15
This commit is contained in:
111
vg/columns.sql
Normal file
111
vg/columns.sql
Normal file
@@ -0,0 +1,111 @@
|
||||
@@header
|
||||
|
||||
set term off
|
||||
/*
|
||||
*
|
||||
* Author : Vishal Gupta
|
||||
* Purpose : Search for column_name
|
||||
* Parameters : 1 - OWNER (% - wildchar, \ - escape char, Default value '%')
|
||||
* 2 - table_name (% - wildchar, \ - escape char, Default value '%')
|
||||
* 3 - column_name (% - wildchar, \ - escape char, Default value '%')
|
||||
* 3 - ObjectType (% - wildchar, \ - escape char, Default value '%')
|
||||
*
|
||||
* Revision History:
|
||||
* ===================
|
||||
* Date Author Description
|
||||
* --------- ------------ -----------------------------------------
|
||||
* 05-Aug-04 Vishal Gupta First Draft
|
||||
* 02-May-12 Vishal Gupta change input parameters
|
||||
* 19-Jul-12 Vishal Gupta Added object type as input parameter
|
||||
*
|
||||
*/
|
||||
set term on
|
||||
|
||||
|
||||
/************************************
|
||||
* INPUT PARAMETERS
|
||||
************************************/
|
||||
DEFINE owner="&&1"
|
||||
DEFINE table_name="&&2"
|
||||
DEFINE column_name="&&3"
|
||||
DEFINE object_type="&&4"
|
||||
|
||||
|
||||
set term off
|
||||
COLUMN _owner NEW_VALUE owner NOPRINT
|
||||
COLUMN _table_name NEW_VALUE table_name NOPRINT
|
||||
COLUMN _column_name NEW_VALUE column_name NOPRINT
|
||||
COLUMN _object_type NEW_VALUE object_type NOPRINT
|
||||
|
||||
SELECT SUBSTR(UPPER('&&owner'), 1 , CASE INSTR('&&owner','.') WHEN 0 THEN LENGTH ('&&owner') ELSE INSTR('&&owner','.') - 1 END) "_owner"
|
||||
, CASE WHEN INSTR('&&owner','.') != 0 THEN SUBSTR(UPPER('&&owner'),INSTR('&&owner','.')+1) ELSE UPPER('&&table_name') END "_table_name"
|
||||
, CASE INSTR('&&owner','.') WHEN 0 THEN UPPER('&&column_name') ELSE UPPER('&&table_name') END "_column_name"
|
||||
, CASE INSTR('&&owner','.') WHEN 0 THEN UPPER('&&object_type') ELSE UPPER('&&column_name') END "_object_type"
|
||||
FROM DUAL
|
||||
;
|
||||
|
||||
SELECT DECODE(UPPER('&&column_name'),'','%',UPPER('&&column_name')) "_column_name"
|
||||
, DECODE(UPPER('&&object_type'),'','%',UPPER('&&object_type')) "_object_type"
|
||||
FROM DUAL
|
||||
;
|
||||
|
||||
set term on
|
||||
|
||||
|
||||
|
||||
PROMPT *****************************************************************
|
||||
PROMPT * COLUMNS LIST
|
||||
PROMPT *
|
||||
PROMPT * Input Parameters
|
||||
PROMPT * - Owner = '&&owner'
|
||||
PROMPT * - Object Name = '&&table_name'
|
||||
PROMPT * - Column Name = '&&column_name'
|
||||
PROMPT *****************************************************************
|
||||
|
||||
|
||||
|
||||
|
||||
COLUMN object_name HEADING "ObjectName" FORMAT a45
|
||||
COLUMN object_type HEADING "ObjectType" FORMAT a17
|
||||
COLUMN column_name HEADING "ColumnName" FORMAT a30
|
||||
COLUMN Type HEADING "ColumnType" FORMAT a30
|
||||
COLUMN nullable HEADING "Null?" FORMAT a8
|
||||
COLUMN data_default HEADING "Default|Value" FORMAT a30
|
||||
|
||||
|
||||
|
||||
SELECT c.owner || '.' || c.table_name object_name
|
||||
, o.object_type
|
||||
, c.column_name
|
||||
, DECODE(c.nullable,'N','NOT NULL','') nullable
|
||||
, CASE
|
||||
WHEN c.data_type = 'NUMBER'
|
||||
THEN c.data_type || NVL2(c.data_precision||c.data_scale, '(' || NVL(c.data_precision,'38') || ',' || NVL(c.data_scale,'127') || ')','')
|
||||
WHEN c.data_type = 'FLOAT'
|
||||
THEN c.data_type || NVL2(c.data_precision,'(' || c.data_precision || ')','')
|
||||
WHEN c.data_type = 'VARCHAR2' OR c.data_type = 'CHAR'
|
||||
THEN c.data_type || '(' || c.char_length || ' ' || DECODE(c.char_used,'B','BYTE','CHAR') || ')'
|
||||
WHEN c.data_type = 'NVARCHAR2' OR c.data_type = 'NCHAR'
|
||||
THEN c.data_type || '(' || c.char_length || ')'
|
||||
WHEN c.data_type = 'RAW' OR c.data_type = 'UROWID'
|
||||
THEN c.data_type || '(' || c.data_length || ')'
|
||||
ELSE c.data_type
|
||||
END Type
|
||||
FROM dba_tab_columns c
|
||||
, dba_objects o
|
||||
WHERE o.owner = c.owner
|
||||
AND o.object_name = c.table_name
|
||||
AND o.SUBOBJECT_NAME IS NULL --Exclude paritions and sub-paritions
|
||||
AND UPPER(c.owner) like UPPER('&&owner') ESCAPE '\'
|
||||
AND UPPER(c.table_name) like UPPER('&&table_name') ESCAPE '\'
|
||||
AND UPPER(c.column_name) like UPPER('&&column_name') ESCAPE '\'
|
||||
AND UPPER(o.object_type) like UPPER('&&object_type') ESCAPE '\'
|
||||
AND c.table_name NOT LIKE 'BIN$%'
|
||||
ORDER BY c.column_name,c.owner, c.table_name ;
|
||||
|
||||
UNDEFINE owner
|
||||
UNDEFINE table_name
|
||||
UNDEFINE column_name
|
||||
UNDEFINE object_type
|
||||
|
||||
@@footer
|
||||
Reference in New Issue
Block a user