首页 > 数据库 > Oracle > impdp报错违反唯一约束排查处理
在做数据导出导入进行迁移时,导入日志报错违反唯一约束

导出数据库查询,确认是否存在重复数据
确认该唯一索引涉及到的列
根据该索引涉及到的列查看是否存在重复数据
select * from (select t1.*,count(1) over(partition by t1.SHIP_NO, tl.BILL_NBR) rn from test.test1 t1) t1where t1.rn > 1;
根据查询结果,发现源库的确存在重复数据,部分数据有一样的两条(结果不做展示)
将解决方案告知客户后,客户选择在生产库删除重复数据后重导,但是在删除的时候发现奇怪问题。
业务方想去产出重复数据,发现:根据重复列的sql查询的结果,将唯一索引涉及到的列代入到where条件中查询,只有一条数据,如下:

尝试用其他方式再次查询确认是否存在重复行,如下:

发现找不到重复数据,怀疑是索引用rowid回表查询有问题,为进一步确认,强制查询走全表

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29956245/viewspace-3109734/ ,如需转载,请注明出处,否则将追究法律责任。