ALL_PROCEDURES, DBA_PROCEDURES, USER_PROCEDURESはOracleのストアド・プロシージャおよびストアド・ファンクションに関する情報を格納しているデータ・ディクショナリ・ビューです。構造や格納されている情報についてご紹介します。
ALL_PROCEDURESは、現在のユーザがアクセスできるストアド・プロシージャおよびストアド・ファンクションを示すデータ・ディクショナリ・ビューである。
列 | データ型 | NULL | 説明 |
---|---|---|---|
OWNER | VARCHAR2(128) | プロシージャの所有者 | |
OBJECT_NAME | VARCHAR2(128) | パッケージ名、プロシージャ名またはファンクション名 | |
PROCEDURE_NAME | VARCHAR2(128) | NULL、プロシージャ名またはファンクション名 | |
OBJECT_ID | NUMBER | オブジェクトの識別子 | |
SUBPROGRAM_ID | NUMBER | サブプログラムの識別子 | |
OVERLOAD | VARCHAR2(40) | オーバロード | |
OBJECT_TYPE | VARCHAR2(13) | オブジェクトの型名 | |
AGGREGATE | VARCHAR2(3) | プロシージャが集計関数かどうか | |
PIPELINED | VARCHAR2(3) | プロシージャがパイプライン・テーブル・ファンクションかどうか | |
IMPLTYPEOWNER | VARCHAR2(128) | 実装タイプがある場合は、その所有者 | |
IMPLTYPENAME | VARCHAR2(128) | 実装タイプがある場合は、その名前 | |
PARALLEL | VARCHAR2(3) | プロシージャまたはファンクションがパラレルで使用可能か | |
INTERFACE | VARCHAR2(3) | ODCIインタフェースを使用して実装されたテーブル・ファンクションかどうか | |
DETERMINISTIC | VARCHAR2(3) | DETERMINISTICであると宣言されているか | |
AUTHID | VARCHAR2(12) | DEFINER または CURRENT_USER(実行者)として実行するために宣言されているか | |
ORIGIN_CON_ID | VARCHAR2(256) | データの発生元のコンテナのID |
ALL_PROCEDURESデータディクショナリ・ビューから所有者を取得する。
SELECT OWNER FROM ALL_PROCEDURES WHERE OBJECT_NAME = 'FOO' AND PROCEDURE_NAME = 'BAR'
パッケージに含まれるプロシージャまたはファンクションの場合、パッケージ名を示す。
パッケージに含まれないプロシージャまたはファンクションの場合、プロシージャ名またはファンクション名を示す。
パッケージに含まれるプロシージャまたはファンクションの場合、プロシージャ名またはファンクション名を示す。
パッケージに含まれないプロシージャまたはファンクションの場合、NULLとなる。
オブジェクトの型名
現在のユーザがアクセスできるストアド・ファンクションを問い合わせるSQL文の例を次に示す。
SQL> SELECT * FROM ALL_PROCEDURES WHERE OBJECT_TYPE = 'FUNCTION';
プロシージャがパイプライン・テーブル・ファンクションかどうか。
プロシージャ/ファンクションが、ODCIインタフェースを使用して実装されたテーブル・ファンクションかそうでないか。
プロシージャ/ファンクションがDETERMINISTICであると宣言されているか宣言されていないか。
DBA_PROCEDURESは、データベース内のすべてのプロシージャ又はファンクションを示すデータ・ディクショナリ・ビューである。
DBA_PROCEDURESの構造は、ALL_PROCEDURESと同じである。
DBA_PROCEDURESにどんな列があるのかを確認する。
DESCRIBE DBA_PROCEDURES
USER_PROCEDURESは、現在のユーザが所有するプロシージャ又はファンクションを示すデータ・ディクショナリ・ビューである。
USER_PROCEDURESの構造は、OWNER列が無いことを除き、ALL_PROCEDURESやDBA_PROCEDURESと同じである。
自分が所有するすべてのプロシージャとファンクションの名前を取得する。
SELECT OBJECT_NAME, PROCEDURE_NAME FROM USER_PROCEDURES
ファンクションおよびプロシージャに関するデータ・ディクショナリ・ビューの一覧を次に示す。