impdp时如何忽略主键约束引起的报错,而操作跳过该行记录的插入继续进下去?很多人回答ignore=y,我查过ignore=y是用在imp里面的,而且是为了忽略创建表结构报错的,当imp时遇主键冲突照样会报错。impdp中则就根本不存在该参数,用content来过滤了。问题是遇到主键约束还是报错,谢谢

解决方案 »

  1.   

    oracle怎么会做些这样的事情,即使插入了,不违背了他的数据完整性????
      

  2.   

    先把主键disable掉,
    然后导入,导入完毕,按照下面的方式来做:
    --使用exception表enable含有主键的表,这里报错时正常的
    SQL> alter table chargeclass enable constraint SYS_C006737
      2   exceptions into exceptions;
    alter table chargeclass enable constraint SYS_C006737
    *
    ERROR at line 1:
    ORA-02437: cannot validate (IMUSE01. SYS_C006737) - primary key violated
    --删除chargeclass表中的重记录
    SQL> delete from chargeclass where rowid in
      2  (select ROW_ID from exceptions);
      --重新加载主键
    SQL> alter table chargeclass enable constraint SYS_C006737;
      

  3.   

    今天遇到跟楼主同样的问题,于是把这个帖子搜出来了。
    2楼的办法是可以解决,但问题是impdp报错的时候,并不会报到底是哪个表哪个索引出错。现在关键的问题,就在于精确定位出错的地方。