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
ファンクションおよびプロシージャに関するデータ・ディクショナリ・ビューの一覧を次に示す。