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 语句对某些表运行并失败,因为所引用的表尚未创建。
我见过这个命令:
select dbms_metadata.get_ddl('CONSTRAINT',constraint_name) from user_constraints;
但是要使用它,我是否不必以某种方式告诉GET_DDL
根本不产生任何约束?
有什么方法可以让表格以正确的顺序创建吗?
谢谢!