我有一个数据转储,然后我想将它导入另一个数据库(Oracle 10g).目标DB已经有表(没有数据)和一些外键约束.我将按表导入数据,以避免约束错误.如果有人知道任何更简单的方法,请教我吗?(Oracle的导入工具没有自动识别表间关系的功能,是吗?)
您可以先禁用所有外键:
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
但这是有风险的,因为如果数据不符合您的约束 - 您将遇到问题......