2

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

但是我遇到了像 sql export cannot take clob or long raw or long or blob 这样的错误,所以我必须手动删除大约 50 个表。

有这个查询吗?因为 PLSQL Developer 中的另一种方式真的很慢。

4

2 回答 2

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');
于 2013-07-03T11:46:17.553 回答
1

当您只指定模式而不指定数据时,您可以使用古老的 IMP/EXP 工具来执行此操作。

例如来自 Tom Kyte 的解决方案

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

然后摆脱这些行

REM  ...
CONNECT 

然后删除所有其他REMs。

于 2013-07-03T11:34:15.823 回答