ホームページ  >  記事  >  データベース  >  Oracle クエリ ストアド プロシージャに関係するテーブルは何ですか?

Oracle クエリ ストアド プロシージャに関係するテーブルは何ですか?

下次还敢
下次还敢オリジナル
2024-04-19 05:36:51609ブラウズ

ストアド プロシージャに関係するテーブルをクエリするには: データベースに接続します。 ALL_OBJECT_TABLES ビューをクエリし、ストアド プロシージャに関係するテーブルをフィルターで除外します (OBJECT_NAME はストアド プロシージャ OBJECT_NAME と一致し、一時テーブルを除外し、テーブル名に $ が含まれません)。結果には、ストアド プロシージャ名 (OBJECT_NAME) と関連するテーブルの名前 (TABLE_NAME) が含まれます。

Oracle クエリ ストアド プロシージャに関係するテーブルは何ですか?

#Oracle ストアド プロシージャに関係するテーブルをクエリする

ストアド プロシージャに関係するテーブルをクエリするには、次のようにします。 Oracle データのディクショナリ ビューを使用できます。これらのビューには、Oracle データベース オブジェクトに関する情報が含まれています。

手順:

    Oracle データベースに接続します。
  1. 次のビューをクエリします:
  2. <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>

結果:

このクエリは次の列情報を返します:

  • OBJECT_NAME: ストアド プロシージャの名前
  • TABLE_NAME: ストアド プロシージャに含まれるテーブルの名前

例:

GET_CUSTOMER_DATA という名前のストアド プロシージャがあり、そのストアド プロシージャに CUSTOMERORDERS が含まれる場合テーブルの場合、クエリ結果は次のようになります:

<code class="sql">OBJECT_NAME  TABLE_NAME
GET_CUSTOMER_DATA  CUSTOMER
GET_CUSTOMER_DATA  ORDERS</code>

説明:

  • ALL_OBJECT_TABLES ビューには、すべてのテーブルに関するメタデータ情報が含まれます。データベース内で。
  • ALL_OBJECTS ビューには、ストアド プロシージャを含む、データベース内のすべてのオブジェクトに関するメタデータ情報が含まれます。
  • TABLE_NAME 列には、テーブルが Oracle によって内部的に使用される一時テーブルであることを示す $ フラグが含まれる場合があります。これらのテーブルは結果から除外する必要があります。
  • TEMPORARY 列は、テーブルが一時テーブルであるかどうかを示します。一時テーブルはセッション終了後に削除されるため、結果から除外する必要があります。

以上がOracle クエリ ストアド プロシージャに関係するテーブルは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。