Oracle でストアド プロシージャをクエリする方法

下次还敢
リリース: 2024-04-19 03:00:30
オリジナル
1106 人が閲覧しました

Oracle ストアド プロシージャをクエリするには、次の 3 つの方法があります: (1) SELECT を使用して all_procedures テーブルをクエリする、(2) DBMS_METADATA パッケージの GET_PROCEDURES 関数を使用する、(3) all_dependency テーブルを使用して依存関係をクエリする。ストアド プロシージャの。

Oracle でストアド プロシージャをクエリする方法

#Oracle ストアド プロシージャをクエリする方法

直接クエリ

ストアド プロシージャに対する直接クエリは、ストアド プロシージャに関する情報を取得する最も簡単な方法です。次のクエリを使用します。

<code class="sql">SELECT *
FROM all_procedures
WHERE procedure_name = '<存储过程名称>';</code>
ログイン後にコピー
これにより、ストアド プロシージャのパラメータ、戻り値の型、create ステートメントなどのメタデータが返されます。

DBMS_METADATA パッケージの使用#DBMS_METADATA パッケージは、ストアド プロシージャ情報を取得するためのより高度な方法を提供します。次のクエリを使用します:

<code class="sql">DECLARE
  v_proc_name VARCHAR2(30) := '<存储过程名称>';  -- 替换为实际存储过程名称
BEGIN
  FOR record IN DBMS_METADATA.GET_PROCEDURES(
    ownname  => NULL,  -- 省略所有者名称以检索所有存储过程
    procname => v_proc_name,  -- 指定要检索的存储过程名称
    argnames => NULL,  -- 省略参数名称以检索所有参数
    argtypes => NULL  -- 省略参数类型以检索所有类型
  ) LOOP
    DBMS_OUTPUT.PUT_LINE('存储过程名称: ' || record.procedure_name);
    DBMS_OUTPUT.PUT_LINE('所有者: ' || record.owner);
    DBMS_OUTPUT.PUT_LINE('创建语句: ' || record.text);
  END LOOP;
END;</code>
ログイン後にコピー

クエリの依存関係

ストアド プロシージャの依存関係をクエリするには、次のクエリを使用できます:

<code class="sql">SELECT *
FROM all_dependencies
WHERE object_type = 'PROCEDURE'
  AND object_name = '<存储过程名称>';</code>
ログイン後にコピー

Thisテーブルや他のストアド プロシージャなど、ストアド プロシージャが依存する他のオブジェクトを含むリストが返されます。

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

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート