oracle中有没有命令,在导入数据的时候,如果有主键重复的,那就覆盖主键重复的数据啊?imp的时候都是默认不覆盖主键重复的数据的。

解决方案 »

  1.   

    没见过...学习
    不过你倒是可以imp到另一张表,再merge到目标表里.
      

  2.   

    删除用户,重建用户,再导入,
    或者执行下面的过程,再导入:
    BEGIN
      FOR I IN (SELECT S.TABLE_NAME FROM USER_TABLES S) LOOP
        EXECUTE IMMEDIATE 'truncate table ' || I.TABLE_NAME;
      END LOOP;
    END;
    /
      

  3.   

    imp好像不行,但两个表之间操作可以用merge
      

  4.   

    ignore=y 能忽略错误,但不能覆盖原来的数据。
      

  5.   

    要覆盖的话,那看来真得用merge了.先imp到另一张表,再两表做关联使用merge .
      

  6.   


    意思是从别的地方还原数据的时候,比如imp的时候,如果现有的数据表中已经有数据了,那就导入不了了。
      

  7.   

    imp过程中没有你说的这样功能,肯定要利用其它表,导入后再比较才行
      

  8.   

    imp可以通过ignore=y来忽略主键的错误,但是不能覆盖主键,可以imp到另一张表,然后通过sql完成你的根据主键更新的需求