Oracleでストアドプロシージャで使用されている表を検索の方法

ストアドプロシージャで使用するテーブルを探すには、以下の方法があります。

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

上記の方法は、 関連システムビューやテーブルを参照するには十分な権限が必要です。ご注意ください。

bannerAds