web-dev-qa-db-ja.com

Toad for Oracleを使用したスト​​アドプロシージャ、ビュー、関数、トリガーの取得

Oracle用のToadでストアドプロシージャ、ビュー、関数、トリガーのスクリプトを取得するにはどうすればよいですか?

10
WENzER

一般に、DDLステートメントを取得するにはdbms_metadataを使用する必要があります。例えば。

select dbms_metadata.get_ddl('VIEW', 'V_MYVIEW') from dual;

もちろん、これはデータディクショナリに対するクエリでラップできます。

select dbms_metadata.get_ddl(object_type, object_name) 
from user_objects
where object_type in ('VIEW', 'PROCEDURE', 'FUNCTION', 'TRIGGER');
12
a'r

Toadメニューで、[データベース]-> [スキーマブラウザ]を選択します。表示されたタブを使用して、ビュー、プロシージャ、テーブル、トリガー、関数間を移動します。

3

Toadにはこれを行ういくつかの方法があります。スキーマブラウザで任意のコードオブジェクトをダブルクリックするだけで、エディタが開き、そのオブジェクトの作成DDLが表示されます。または、スキーマブラウザの左側でオブジェクトを選択し、右側で[スクリプト]タブを選択します([スクリプト]タブが表示されない場合は、オプションを確認してください)。

ただし、多数のオブジェクトのDDLを表示する場合は、スキーマブラウザですべてのオブジェクトを選択するか、[オブジェクト検索]ウィンドウでそれらを検索します。次に、右クリックして[スクリプトとして保存]を選択します。また、基本的に同じことを行うExtract DDLツールがあると思いますが、SQLNavigatorについて考えているかもしれません。スキーマ全体を作成スクリプトとしてエクスポートする方法もあります。ただし、これらの機能の一部は、ライセンスレベルによって異なる場合があります。

ところで、これはプログラミングの質問ではありません。

2
Igby Largeman

dba_sourceテーブルを使用すると、使用する必要のあるプロシージャ関数とトリガーのスクリプトが提供されますSELECT TEXT FROM dba_source WHERE TYPE = 'Procedure';

1
WENzER

実際、スキーマブラウザにアクセスすると、任意のオブジェクト(または複数のオブジェクト)を右クリックして、スクリプトとして保存できます。

0
moleboy

申し訳ありませんが、PL/SQLの問題を解決しようとしているこのスレッドに出くわしました。ここの情報は実際に私を助けました、それが他の誰かを助けるかもしれないという心のイム。

PL SQL開発者では、ビューを右クリックし、下部にオプションDBMS_METADATAがあります。 DDLを選択できるフライアウトがあります。

現在のクライアントでは、ORA-31603を入手しています。タイプ「VIEW」のオブジェクト「objname」がスキーマ「schemaName」に見つかりません

これは権限の問題であり、技術的に解決できます。あなたの組織があなたにあなたの仕事をさせたいかどうかはあなたが彼らと一緒に取り組まなければならない問題です。

http://www.tek-tips.com/viewthread.cfm?qid=1666882#

0
greg

すべてのストアドプロシージャを選択しますマウスの右ボタンをクリックします次へ送信を選択しますエディタを選択してスクリプトを作成します.sqlextenDONEでファイルを保存します

0
user7319181

クエリでオブジェクト名(関数テーブルビュー、...)をクリックしてCtrl + LeftMouseClickを試してください

0
va ansari

ヒキガエルで、試してみてください Ctrl+left mouse click クエリ内のオブジェクト名(関数テーブルビュー...)。

0
va ansari

ALL_SOURCE ビューにクエリを実行して、必要なデータを取得できます。例えば:

select owner, name, type, line, text from all_source
 where name like upper('%database_name%')
 order by owner, name, type, line;

the 4 lines of the database_name function

type列には、FUNCTIONJava SOURCEPACKAGEPACKAGE BODYPROCEDURETRIGGERTYPETYPE BODY

また、スキーマにあるものだけが必要な場合は、USER_SOURCEを使用できます(そこにowner列はありません)。例えば:

SELECT * FROM user_source WHERE line = 1;
0
Mariano Desanze