ORACLE 10g:如何在没有外键约束错误的情况下导入?

zon*_*ono 0 import oracle10g

我有一个数据转储,然后我想将它导入另一个数据库(Oracle 10g).目标DB已经有表(没有数据)和一些外键约束.我将按表导入数据,以避免约束错误.如果有人知道任何更简单的方法,请教我吗?(Oracle的导入工具没有自动识别表间关系的功能,是吗?)

A.B*_*ade 5

您可以先禁用所有外键:

begin
  for cnst in (SELECT constraint_name, table_name FROM user_constraints WHERE constraint_type ='R') loop
    execute immediate 'alter table '|| cnst.table_name||' disable constraint ' || cnst.constraint_name ;
  end loop;
end;
Run Code Online (Sandbox Code Playgroud)

加载数据后,执行相同操作以启用它们(只需将alter table命令更改为enable而不是disable

但这是有风险的,因为如果数据不符合您的约束 - 您将遇到问题......