我的架构中有 250 多个表,我想将它们导出为 DDL(创建表 ...)并将它们发送到一个脚本中。通常我使用 PLSQL Developer 的导出工具。
但是我遇到了像 sql export cannot take clob or long raw or long or blob 这样的错误,所以我必须手动删除大约 50 个表。
有这个查询吗?因为 PLSQL Developer 中的另一种方式真的很慢。
我的架构中有 250 多个表,我想将它们导出为 DDL(创建表 ...)并将它们发送到一个脚本中。通常我使用 PLSQL Developer 的导出工具。
但是我遇到了像 sql export cannot take clob or long raw or long or blob 这样的错误,所以我必须手动删除大约 50 个表。
有这个查询吗?因为 PLSQL Developer 中的另一种方式真的很慢。
也许是这样:
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');
当您只指定模式而不指定数据时,您可以使用古老的 IMP/EXP 工具来执行此操作。
例如来自 Tom Kyte 的解决方案:
exp userid=/ owner=some_schema
imp userid=/ indexfile=foo.sql
然后摆脱这些行
REM ...
CONNECT
然后删除所有其他REM
s。