【发布时间】:2017-01-10 01:22:34
【问题描述】:
我正在尝试使用命令导入我的数据库
impdp SYSTEM/password DIRECTORY=dmpdir DUMPFILE=database.dmp CONTENT=DATA_ONLY
这适用于导入数据的某些部分,但是,我收到一个错误:
ORA-02291:违反完整性约束 (SYSTEM.user_role_user_fk) - 找不到父键
基本上我需要先从USER导入数据,然后才能从USER_ROLE导入数据
在使用 IMPDP 时,有没有办法指定操作顺序或首先导入哪些表数据?
编辑:我发现的一个不好的解决方案是简单地使用与上述相同的 impdp 语句两次。通过执行两次,我可以同时导入 USER 和 USER_ROLE,但是必须有更简单的方法。
【问题讨论】:
-
这显然是预期的行为;参见 MOS 说明 1062564.1。这指的是to the documentation,尽管尚不清楚它是否适用于这种情况。您可以在导入之前禁用约束吗?过去我运行了一个脚本来动态禁用所有约束,然后重新启用它们。
-
@AlexPoole - 不过,你能把你的脚本用 dmp 文件运行吗?
-
不,你会运行脚本来禁用;执行
impdp(一次性完成所有表格);然后运行脚本重新启用。我想所有这些都可以在 shell 或批处理脚本包装器中完成。唯一的选择是您已经尝试过的,单独的impdp运行以按照您期望的顺序导入它们。你不能告诉导入顺序。