2026-03-12 20:23:15
This commit is contained in:
103
vg/viewtext_search.sql
Normal file
103
vg/viewtext_search.sql
Normal file
@@ -0,0 +1,103 @@
|
||||
@@header
|
||||
|
||||
/*
|
||||
*
|
||||
* Author : Vishal Gupta
|
||||
* Purpose : Display view's query
|
||||
* Parameters : 1 - Search Text (% - wildchar, \ - escape char)
|
||||
*
|
||||
*
|
||||
* Revision History:
|
||||
* ===================
|
||||
* Date Author Description
|
||||
* --------- ------------ -----------------------------------------
|
||||
* 15-May-12 Vishal Gupta Initial version
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
|
||||
/************************************
|
||||
* INPUT PARAMETERS
|
||||
************************************/
|
||||
UNDEFINE OWNER
|
||||
UNDEFINE view_name
|
||||
UNDEFINE searchtext
|
||||
|
||||
DEFINE OWNER="&&1"
|
||||
DEFINE view_name="&&2"
|
||||
DEFINE searchtext="&&3"
|
||||
|
||||
|
||||
COLUMN _owner NEW_VALUE owner NOPRINT
|
||||
COLUMN _view_name NEW_VALUE view_name NOPRINT
|
||||
COLUMN _searchtext NEW_VALUE searchtext NOPRINT
|
||||
|
||||
set term off
|
||||
SELECT SUBSTR(UPPER('&&owner'), 1 , CASE INSTR('&&owner','.') WHEN 0 THEN LENGTH ('&&owner') ELSE INSTR('&&owner','.') - 1 END ) "_owner"
|
||||
, DECODE(UPPER('&&view_name'),'',SUBSTR(UPPER('&&owner'),INSTR('&&owner','.')+1),UPPER('&&view_name')) "_view_name"
|
||||
, UPPER('&&searchtext') "_searchtext"
|
||||
|
||||
FROM DUAL
|
||||
;
|
||||
|
||||
set term on
|
||||
|
||||
|
||||
PROMPT *****************************************************
|
||||
PROMPT * View Definition Search Results
|
||||
PROMPT *
|
||||
PROMPT * Input Parameters
|
||||
PROMPT * - Owner = '&&owner'
|
||||
PROMPT * - View Name = '&&view_name'
|
||||
PROMPT * - Search Criteria = '&&searchtext'
|
||||
PROMPT *****************************************************
|
||||
|
||||
|
||||
|
||||
COLUMN text HEADING "Query" FORMAT a150
|
||||
|
||||
set long 400000
|
||||
set pages 1000
|
||||
|
||||
--------------------------------------------------------------------
|
||||
-- Had to use XML as pattern matching does not work on LONG datatype
|
||||
-- Also there is no direct function convert LONG to VARCHAR2
|
||||
--------------------------------------------------------------------
|
||||
select *
|
||||
from
|
||||
xmltable( '/ROWSET/ROW'
|
||||
passing dbms_xmlgen.getXMLType(q'[SELECT v.owner
|
||||
, v.view_name
|
||||
, v.text
|
||||
FROM dba_views v
|
||||
WHERE v.owner like '&&owner'
|
||||
AND v.view_name like '&&view_name'
|
||||
]'
|
||||
)
|
||||
columns
|
||||
owner varchar2(30)
|
||||
, view_name varchar2(30)
|
||||
, text varchar2(4000)
|
||||
) v2
|
||||
WHERE 1=1
|
||||
AND v2.owner like '&&owner' ESCAPE '\'
|
||||
AND v2.view_name like '&&view_name' ESCAPE '\'
|
||||
AND UPPER(v2.TEXT) like upper('&&searchtext') ESCAPE '\'
|
||||
;
|
||||
|
||||
|
||||
|
||||
SELECT 'SYS' owner
|
||||
, v.view_name
|
||||
, v.view_definition text
|
||||
FROM v$fixed_view_definition v
|
||||
WHERE 1=1
|
||||
AND 'SYS' like '&&owner' ESCAPE '\'
|
||||
AND v.view_name like '&&view_name' ESCAPE '\'
|
||||
AND UPPER(v.view_definition) like upper('&&searchtext') ESCAPE '\'
|
||||
;
|
||||
|
||||
|
||||
@@footer
|
||||
Reference in New Issue
Block a user