【发布时间】:2012-06-13 18:58:33
【问题描述】:
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 根本不生成任何约束?
有什么方法可以让表格按正确的顺序创建吗?
谢谢!
【问题讨论】:
标签: database oracle database-schema ddl dbms-metadata