Oracle

Oracle 12c:對所有 PL/SQL 程式碼進行文本搜尋

  • October 5, 2016

我想對我的數據庫中的所有 PL/SQL 函式/過程進行文本搜尋,以查看哪些程式碼正在呼叫特定函式。SQL Developer 中是否有用於此目的的工具,或者係統架構下儲存功能程式碼的元表?模式的文本轉儲也會有所幫助。

前提是以下情況屬實:

  1. 函式不在包中

  2. 函式呼叫不是動態 SQL

然後你可以簡單地從 dba_dependencies 中查看它的依賴關係:

SELECT * 
 FROM dba_dependencies 
WHERE referenced_owner = 'MYOWNER' AND referenced_name = 'MYOBJECT';

否則,您可以檢查 dba_source:

SELECT * 
 FROM dba_source 
WHERE upper(text) like '%MYOWNER.MYOBJECT%';

要查看架構的所有對象的源:

SELECT * 
 FROM dba_source 
WHERE owner = 'MYOWNER'
ORDER BY type, name, line;

引用自:https://dba.stackexchange.com/questions/151331