ストアド プロシージャに関係するテーブルをクエリするには: データベースに接続します。 ALL_OBJECT_TABLES ビューをクエリし、ストアド プロシージャに関係するテーブルをフィルターで除外します (OBJECT_NAME はストアド プロシージャ OBJECT_NAME と一致し、一時テーブルを除外し、テーブル名に $ が含まれません)。結果には、ストアド プロシージャ名 (OBJECT_NAME) と関連するテーブルの名前 (TABLE_NAME) が含まれます。
#Oracle ストアド プロシージャに関係するテーブルをクエリする
ストアド プロシージャに関係するテーブルをクエリするには、次のようにします。 Oracle データのディクショナリ ビューを使用できます。これらのビューには、Oracle データベース オブジェクトに関する情報が含まれています。手順:
<code class="sql">SELECT * FROM ALL_OBJECT_TABLES WHERE OBJECT_NAME IN ( SELECT OBJECT_NAME FROM ALL_OBJECTS WHERE OBJECT_TYPE = 'PROCEDURE' AND SCHEMA_NAME = 'YOUR_SCHEMA_NAME' ) AND TABLE_NAME NOT LIKE '%$%' AND TEMPORARY = 'N' ORDER BY OBJECT_NAME, TABLE_NAME;</code>
結果:
このクエリは次の列情報を返します:: ストアド プロシージャの名前
: ストアド プロシージャに含まれるテーブルの名前
例:
GET_CUSTOMER_DATA という名前のストアド プロシージャがあり、そのストアド プロシージャに
CUSTOMER と
ORDERS が含まれる場合テーブルの場合、クエリ結果は次のようになります:
<code class="sql">OBJECT_NAME TABLE_NAME GET_CUSTOMER_DATA CUSTOMER GET_CUSTOMER_DATA ORDERS</code>
説明:
ビューには、すべてのテーブルに関するメタデータ情報が含まれます。データベース内で。
ビューには、ストアド プロシージャを含む、データベース内のすべてのオブジェクトに関するメタデータ情報が含まれます。
列には、テーブルが Oracle によって内部的に使用される一時テーブルであることを示す
$ フラグが含まれる場合があります。これらのテーブルは結果から除外する必要があります。
列は、テーブルが一時テーブルであるかどうかを示します。一時テーブルはセッション終了後に削除されるため、結果から除外する必要があります。
以上がOracle クエリ ストアド プロシージャに関係するテーブルは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。