导入DMP文件的时候,发现很多表内的数据库内容数据重复。没有主键约束,部分少的表可以手工删除。但是数据太多的,工作量太大无法删除。怎么样删除重复的内容。或者由其他办法也可以。能不能删除这张表。然后从DMP中导入指定的表的内容

解决方案 »

  1.   

    dmp文件导出可以指定某些表,导入好像没有指定哪张表功能没有主键约束的话,删除就比较麻烦了 如果字段少的话就用每个字段自关联下delete from t1 a where a.rowid < (select max(b.rowid) from t2 b where b.col1 = a.col1 and b.col2=a.col2 ...)
    有几个字段就写几个
      

  2.   

    如果你这个DMP文件是按照用户导的,可以把该用户下的数据全删了,然后重新导一遍DMP文件中的内容呢
      

  3.   

    将表drop掉重导。
    如果导入后确实还有重复数据那就删了
    你可以先找出哪些数据时重复的:
    select id ,count(*) from table1 group by id having count(*) > 1;确认好具体数据然后再看是否可以用语句进行删除
    delete from table1 t1 where exists(select 1 from table2 t2 where t1.rowd > t2.rowid 
    and t1.id = t2.id)
      

  4.   

    可以指定导表的吧。 tables=() 加上你要的表名就可以了