之前试着把Oracle的数据同步到MSSQL,表到表的操作,结果提示插入重复主键,在Oracle使用的是rowid插入到MSSQL表的id主键中去,该id设置了主键约束。
一开始很纳闷,怎么会重复插入主键呢? rowid不是唯一的吗? 因为搞了很久没搞定,换了其他生成主键的方法也没成功,sys_guid ()之类的。
那就只能在MSSQL创建一张相同的表,去掉了主键约束,这下总不会报错了吧?
试了下,这会真的没有报错了。后来无意间翻了下之前提示报错重复主键的值,复制下来,往这张表里面一查,居然出现了两条!!
仔细看了下,这。。。 两条的主键字母都相同,唯一的区别是大小写不同,这下明白了,对Oracle来说,这两个主键都是唯一的(大小写不同),但对MSSQL来说,这两个主键是相同的(不区分大小写,当成一样的了)。
今天才想起来没记录下来,在此记录下,以免忘记了。
标签:主键,插入,报错,datax,Oracle,大小写,MSSQL From: https://www.cnblogs.com/WikiChen/p/17800252.html