プロシージャやファンクションなどのソース情報を取得するには、SOURCEデータディクショナリを検索します。
SOURCEデータディクショナリの種類
SOURCEデータディクショナリには以下3種類あります。
USER_SOURCE | 自スキーマのストアド等を対象とする場合 |
---|---|
ALL_SOURCE | 自身がアクセスできるストアド等を対象とする場合 |
DBA_SOURCE | すべてのストアド等を対象とする場合 |
SOURCEデータディクショナリの構成
SOURCEデータディクショナリの構成は以下の通りです。
カラム | 型 | メモ |
---|---|---|
OWNER | VARCHAR2 | 所有者(スキーマ名) ※USER_SOURCEにはありません。 |
NAME | VARCHAR2 | オブジェクトの名前 |
TYPE | VARCHAR2 | オブジェクトのタイプ (PACKAGE, PACKAGE BODY, PROCEDURE, FUNCTION, JAVA SOURCE, TYPE, TYPE BODY, LIBRARY, TRIGGER |
LINE | NUMBER | 行番号 |
TEXT | VARCHAR2 | ソース |
サンプルコード
例)自スキーマのPKG_TESTパッケージのソースを検索する
1 2 3 |
SELECT text FROM USER_SOURCE WHERE name = 'PKG_TEST' ORDER BY line; |
例)TAROスキーマのPKG_TESTパッケージのソースを検索する
1 2 3 |
SELECT text FROM DBA_SOURCE WHERE owner = 'TARO' AND name = 'PKG_TEST' ORDER BY line; |
nameに指定するストアド名等は必ず大文字で指定してください。
メモ
- 検索できるソースは、PACKAGE, PACKAGE BODY, PROCEDURE, FUNCTION, JAVA SOURCE, TYPE, TYPE BODY, LIBRARY, TRIGGERです。
- ソースはデータディクショナリ1行に1レコードの型式で格納されています。
- DBA_SOURCEを検索するには権限が必要です。
- SQL/Plus で検索する時は、「set pagesize 0」とやっておくと見やすいです。