[MSSQL]
可透過查詢sql_modules取得中各種使用者自建物件的原始碼 (Source Code),如View、Stored Proceure、Function及其他物件,以下以定序 (COLLATE)處理不分大小寫需求,另外以中括號([])處理查詢底線(_)字元問題。
SELECT schema_name(o.schema_id) [Owner]
, o.Name [Object_Name]
, o.type [Object_Type]
, REPLACE(o.type_desc, 'SQL_', '') [Type_Desc]
FROM sys.sql_modules m
INNER JOIN sys.objects o
ON o.object_id = m.object_id
WHERE 1=1
AND m.definition COLLATE SQL_Latin1_General_CP1_CI_AS
LIKE '%STK[_]%'
--不分大小寫
AND o.type IN ('V') –View
|
[ORACLE]
ORACLE則可使用dbms_metadata.get_ddl指令取得物件建立原始碼,並以REGEXP_LIKE指令處理不分大小寫問題,使用ESCAPE指定逸出字元。
SELECT OBJECT_NAME
,
OBJECT_TYPE
FROM
(
SELECT OWNER
,
OBJECT_TYPE
,
OBJECT_NAME
, dbms_metadata.get_ddl(OBJECT_TYPE ,OBJECT_NAME, OWNER) TXT
FROM ALL_OBJECTS
WHERE 1=1
AND OWNER = 'ACE'
AND OBJECT_TYPE = 'VIEW'
AND OBJECT_NAME LIKE 'STK\_%' ESCAPE '\' --查詢名稱字首為 STK_ 所有物件
)
WHERE 1=1
AND REGEXP_LIKE(TXT, 'CRNcy', 'i') --不分大小寫
|
ORACLE
|
MSSQL
|
|
不分大小寫
|
使用REGEXP_LIKE函數
|
使用定序
|
查詢包含底線(_)
|
以ESCAPE指定逸出字元
|
使用中括號包夾
|
沒有留言:
張貼留言