2016-05-13 3 views
0

Toad for Oracleでは、特定の表のDDLスクリプトを見ることができます。私はすぐにすべてのテーブルに移動し、それらをつかむのではなく、ほぼ50テーブルのためにALTER TABLE ADD FOREIGN KEY CONSTRAINT ddlだけをプルする方法を見つけようとしています。これのためのカタログ表、またはその部分だけを引っ張る方法はありますか?Oracle - すぐにテーブル・スクリプトを変更する

+0

あなたが特定のヒキガエルツールを使用することを意味'dbms_metadata'パッケージではなく、 –

+0

このパッケージを使用したことはありません。その結果が得られる限り、いかなる方法でもよい。 – user3224907

+0

これはあなたがここに投稿した他の質問に関連していると仮定していますhttp://stackoverflow.com/questions/37196117/oracle-delete-all-child-records-for-a-parent-実際に必要なのはすべてを見つけることです外部キー、なぜあなたは 'select * from all_constraints where constraint_type = 'R''を実行できませんか?あるいは、 'table_name、constraint_name、r_constraint_name'のように必要なカラムを選択するだけですか? – mathguy

答えて

1

はい、間違いなくToadで可能です。 (!NBは自分のスキーマブラウザのタブを使用するように設定されている、私はあなたがタブ付きされていない場合は、以下が動作するかどうか分からない)

は、ここでは、ヒキガエルでそれを得ることができる方法は次のとおりです。上の

  1. クリックIMGの列で制約
  2. 外部キー制約までスクロールダウン(その横にFと青キー)
  3. Ctrlキー+は、あなたが
  4. のためのスクリプトを生成する外部キーをクリックして[制約]タブ
  5. 注文
  6. Ri
  7. を選択し、あなたがオプションを選択すると、どのように結果を表示することができますウィンドウが表示されますポップアップメニュー

から「スクリプトの作成」制約名のリストにGHTのマウスクリック。

1

ツールに依存しないバージョン:

SELECT dbms_metadata.get_dependent_ddl('REF_CONSTRAINT', table_name) 
    FROM user_tables t -- may want to change this to all_tables... 
WHERE EXISTS (SELECT 1 
       FROM user_constraints 
       WHERE table_name = t.table_name 
       AND constraint_type = 'R'); 

この意志は(それらを持っているテーブルに対して。)すべての外部キー制約のためにALTER TABLEステートメントの生成

http://przemyslawkruglej.com/archive/2014/09/how-to-get-referential-constraints-using-dbms_metadata/

関連する問題