用于导出架构中所有表的DDL的查询

时间:2013-07-03 11:29:58

标签: oracle plsqldeveloper

我的架构中有超过250个表,我想将它们导出为DDL(创建表...)并将它们发送到一个脚本中。实际上,我使用了PLSQL Developer的导出工具。

但我面临的错误就像sql导出无法接受clob或long raw或long或blob所以我必须手动删除大约50个表。

是否有查询?因为PLSQL Developer中的另一种方式非常慢。

2 个答案:

答案 0 :(得分:6)

也许这个:

select dbms_metadata.get_ddl('TABLE', table_name)
from user_tables

如果您愿意,可以排除表格:

select dbms_metadata.get_ddl('TABLE', table_name)
from user_tables
where table_name not in ('FOO', 'BAR');

答案 1 :(得分:0)

当您只指定架构而没有数据时,您可以使用古老的IMP / EXP工具执行此操作。

e.g。来自Tom Kyte的解决方案here

exp userid=/ owner=some_schema
imp userid=/ indexfile=foo.sql

然后摆脱这些线

REM  ...
CONNECT 

然后删除所有其他REM