exec dbms_metadata.set_transform_param(DBMS_METADATA.SESSION_TRANSFORM, 'CONSTRAINTS_AS_ALTER', TRUE);
SELECT DBMS_METADATA.GET_DDL(object_type, object_name, owner) FROM all_OBJECTS WHERE
OWNER = 'USERNAME' AND OBJECT_TYPE = 'TABLE';
これらのコマンドを実行すると、残念ながら、各テーブルの後に変更ステートメントが表示されます。すべてのテーブルに対して DDL を生成してから、alter ステートメントを続けて制約を設定することをお勧めします。現在、参照されているテーブルがまだ作成されていないため、alter ステートメントが実行され、いくつかのテーブルで失敗します。
私はこのコマンドを見ました:
select dbms_metadata.get_ddl('CONSTRAINT',constraint_name) from user_constraints;
しかし、それを使用するにはGET_DDL
、制約をまったく生成しないように何らかの方法で指示する必要はありませんか?
テーブルを正しい順序で作成する方法はありますか?
ありがとう!