Oracleでストアドプロシージャで使用されている表を検索の方法
ストアドプロシージャで使用するテーブルを探すには、以下の方法があります。
- Oracle製のツールを使用:Oracle SQL DeveloperやToadなどのOracle製のツールには、「検索」機能が搭載されています。この検索機能にストアドプロシージャの名前を入力すると、データベース全体から、そのストアドプロシージャに関連するコードを検索し、使用されているテーブルを特定できます。
- ALL_DEPENDENCIESビューを確認する。データベースオブジェクト間の依存関係の情報を保持する。次のSQL文を使用して、格納プロシージャに依存している表を照会します。
- SELECT referenced_owner, referenced_name, referenced_type
FROM all_dependencies
WHERE owner = ‘<ストアドプロシージャの所有者>’
AND name = ‘<ストアドプロシージャ名>’
AND type = ‘PROCEDURE’; - これはストアドプロシージャが依存しているテーブルの所有者、名前、種類を返します。
- DBA_SOURCEビューを照会する: DBA_SOURCEビューは、データベース内のすべてのオブジェクトのソースコードを含んでいます。次のSQLステートメントを使用して、ストアドプロシージャで使用されるテーブルを照会できます。
- SELECT DISTINCT owner, name
FROM dba_source
WHERE owner = ‘<ストアド・プロシージャの所有者>’
AND name = ‘<ストアド・プロシージャ名>’
AND text LIKE ‘<表名>%’; - 指定されたテーブル名の所有者と名前を含む、ストアドプロシージャで参照される TABLE を返します。
上記の方法は、 関連システムビューやテーブルを参照するには十分な権限が必要です。ご注意ください。