我正在尝试使用SQLFILE参数将转储文件导入到.sql文件。
我使用了命令“ impdp用户名/密码DIRECTORY = dir DUMPFILE = sample.dmp SQLFILE = sample.sql LOGFILE = sample.log”
我希望这会返回一个包含表内内容的sql文件。但是它创建了一个仅包含DDL查询的sql文件。
对于导出,我使用了“ expdp用户名/密码DIRECTORY = dir DUMPFILE = sample.dmp LOGFILE = sample.log FULL = y”
转储文件大小为130 GB。因此,我相信转储已正确导出。
我在导入命令中缺少什么吗?我还应该使用其他任何参数来获取内容吗?
提前致谢!
恐怕您的期望是错误的。您是在要求它执行其不适合的工作。
的文档中SQLFILE说:
SQLFILE
目的 指定一个文件,该文件将根据其他参数将要执行导入的所有SQL DDL写入其中。
目的
指定一个文件,该文件将根据其他参数将要执行导入的所有SQL DDL写入其中。
因此,它将仅包含DDL。
没有一种机制可以将.dmp文件转换为.sql包含插入语句的文件。如果需要将数据放入表中,请使用本机导入。
.dmp
.sql
单独的插入语句(如果可以生成它们,则SQL Developer将作为与数据泵导出无关的单独任务来执行)会更慢,出现LOB问题,并且必须小心运行它们的顺序,除非完整性约束被禁用。数据泵将为您解决所有这些问题。