在oracle迁移到达梦过程中,创建主键提示违法唯一约束。如下所示: 用户反馈没有重复数据 原因是达梦空格填充模式参数(BLANK_PAD_MODE)为0 , 查询语句将忽略字符串的后缀空格,由于大部分其他都已经迁移过去,只有个别表报错,不能重新初始化实例,需要将有问题的数据查找出来删除 查找重复数据 SELECT A.NAME ,COUNT(*) N FROM (SELECT TRIM(NAME) NAME FROM TEST)A GROUP BY A.NAME ORDER BY N DESC; 还有一种是ROW_NUMBER() OVER 函数查找重复数据 select * from (SELECT name,row_Number() over(partition by name ORDER by 1 desc)rn from test ) t where t.rn>1 将上面的重复字段随便找一条看下字段长度区别 根据rowid来删除重复数据 delete from test where rowid in (select rowid from (SELECT name, row_Number() over(partition by name ORDER by 1 desc)rn from test ) t where t.rn>1) 删除之后,查看以前的重复数据值,可以看到只有一台数据了 重复值删除之后,能成功创建主键
标签:name,填充,重复,空格,达梦,rn,SELECT,NAME From: https://www.cnblogs.com/fangzpa/p/18431703