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';
이러한 명령을 실행할 때 불행히도 각 테이블 다음에 alter 문을 가져옵니다. DDL을 모든 테이블에 대해 생성 한 다음 제약 조건을 설정하기 위해 alter 문을 사용하는 것을 선호합니다. 현재 참조되는 테이블이 아직 작성되지 않았기 때문에 alter 문이 실행되고 일부 테이블에 대해 실패합니다.GET_DDL에 CONSTRAINTS_AS_ALTER을 (를) 올바르게 사용하려면 어떻게해야합니까?
select dbms_metadata.get_ddl('CONSTRAINT',constraint_name) from user_constraints;
하지만이 어떻게 든 전혀 어떤 제약 조건을 생성하지 GET_DDL
에게하지 않을 것을 사용하기 :
나는이 명령을 보았는가?
테이블을 올바른 순서로 만들 수있는 방법이 있습니까?
감사합니다.
exec dbms_metadata.set_transform_param(DBMS_METADATA.SESSION_TRANSFORM, 'REF_CONSTRAINTS', FALSE);
는 그런 제약 DDL을 실행하지만 where constraint_type = 'R'
: