Oracle - 克隆表 - 结构,数据约束和所有

时间:2012-11-14 10:27:28

标签: sql oracle oracle10g

我知道我可以通过

复制故事结构和数据
create table testtable1 as select * from sourcetable

有没有办法实际克隆所有内容,触发器,约束,授权等?

提前致谢。我们正在运行10G。

2 个答案:

答案 0 :(得分:11)

查看dbms_metadata,尤其是其dbms_metadata.get_ddl程序(请参阅此tahiti link)。

所以,在你的情况下,你会先做

select dbms_metadata.get_ddl('TABLE', 'SOURCETABLE') from dual;

根据现在在这里的评论:不要忘记dbms_metadata.get_dependent_ddl

select dbms_metadata.get_dependent_ddl('TABLE', 'SOURCETABLE') from dual;

然后从给定的输出开始工作。

答案 1 :(得分:1)

以下查询返回错误:

select dbms_metadata.get_dependent_ddl('TABLE', 'SOURCETABLE') from dual;

错误:

ORA-31608: specified object of type TABLE not found
ORA-06512: at "SYS.DBMS_METADATA", line 6069
ORA-06512: at "SYS.DBMS_METADATA", line 8761
ORA-06512: at line 1
31608. 0000- "specified object of type %s not found"
*Cause: The specified object was not found in the database
*Action: Correct the object specificationand try the call again.

下面的查询按预期返回“ SOURCETABLE”的创建代码。

select dbms_metadata.get_ddl('TABLE', 'SOURCETABLE') from dual;