Oracle在导入大量数据时,可能会被约束条件制约,导致导入数据失败。 这个时候我们需要暂时禁用约束,等导入数据后再启用约束。
1.首先我们要禁用系统中所有的约束
--禁用所有外键约束
select 'alter table ' || table_name || ' disable constraint ' ||
       constraint_name || ';'
  from user_constraints
 where constraint_type = 'R'
使用上面提供的语句查询,结果如下图:

2015-9-22 9-28-16

 

这时我们看到,已经对系统中所有的约束生成了禁用的sql语句,我们只需要执行生成的sql语句就可以了。

2.正常导入数据

3.导入数据结束以后我们再启用约束

--启用所有外键约束
select 'alter table ' || table_name || ' enable constraint ' ||
       constraint_name || ';'
  from user_constraints
 where constraint_type = 'R'

启用约束同上,如图所示:

2015-9-22 9-31-10

 

可以看到生成的sql语句差不多,只是把disable换成了enable。

执行生成的sql语句就可以了。