6

我有一个巨大的 oracle 数据库的转储,所以不可能全部导入。我想导入一个名为 X 的特定表。问题是 X 有外键。如果我只导入 X,我会收到以下错误:

imp user/pass@dbName tables=X  rows=y ignore=Y
ORA-02291: integrity constraint violated - parent key not found

我已经在本地拥有了整个数据库(但没有数据),我想导入与 X 关联的所有表。我该如何实现呢?我已经安装了 plsql。我还需要知道这些表的顺序才能知道首先要导入哪个表。

4

2 回答 2

3

您可以在导入之前禁用所有数据库约束,然后重新启用它们。看:

于 2012-08-06T08:27:36.023 回答
1

问题很少,所以我将尝试一一回答。

ORA-02291: integrity constraint violated - parent key not found

毫无疑问,因为您知道您没有表 X 的父记录。顺便说一下,您可能还想使用标志CONSTRAINTS=N,因为您已经有 db,如您所说。

“我想导入与 X 关联的所有表。我该如何实现?”

好吧,只能手动查找所有依赖项(或使用数据字典表user_cons_columnsuser_constraints查找)并导入这些表。如果您不这样做,请考虑一下。你会破坏你的数据完整性。如果您仍然希望表 X 中的数据没有依赖关系,则禁用约束然后导入。但是你不会再次启用你的约束,我不知道你想对损坏的数据做什么。

“我还需要知道这些表的顺序,才能知道首先要导入哪个表。”

在导入前禁用约束,然后在导入后启用它们。在这种情况下,您不必担心订单。

于 2013-03-21T02:09:36.737 回答