dポイントプレゼントキャンペーン実施中!

DBMS_METADATA.GET_DDLを使い定義情報を取得しようとしています。
尚、各定義情報は名前を指定せず、全て取得したいです。

テーブル、ビュー、Indexは以下のようにして取得できました。
(select DBMS_METADATA.GET_DDL('TABLE',table_name) from user_tables;)

パッケージ、パッケージボディ、ファンクション、プロシージャーの取得方法が
分かりません。
一応、以下のように名前を指定すると取得できました。
select DBMS_METADATA.GET_DDL('PROCEDURE','名前') from dual;

名前を指定せず、全て取得する方法が分かりません。
パッケージ、パッケージボディ、ファンクション、プロシージャーに関して
全て取得する方法をご教授おねがいします。

A 回答 (2件)

こんにちわ。



> パッケージ、パッケージボディ、ファンクション、プロシージャーに関して
> 全て取得する方法をご教授おねがいします。
取出したいオブジェクト・タイプによって、object_type (第1パラメータ)
に以下の値を指定してGET_DDL をCALL すれば良いだけです。

Package (仕様部) : 'PACKAGE_SPEC'
Package Body : 'PACLAGE_BODY'
Function : 'FUNCTION'
Procedure : 'ROCEDURE'

後は、user_objects と組み合わせてやればOk です。
GET_DDL のschema (第3パラメータ) を省略すると現行ユーザの
オブジェクトが対象になります。dba_objects と組み合わせる場合は
owner を指定し下さい。
詳細はマニュアルで確認して下さい。

以下のURL からDBMS_METADATA のマニュアルを確認できます。
http://docs.oracle.com/cd/E16338_01/appdev.112/b …

参考URL:http://docs.oracle.com/cd/E16338_01/appdev.112/b …
    • good
    • 0
この回答へのお礼

すみません。無事取る事ができました。
ご解答ありがとうございます。

お礼日時:2012/05/21 22:35

こんにちわ。


先の記載にtypo があったので訂正します。

誤:Procedure : 'ROCEDURE'
正:Procedure : 'PROCEDURE'
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す