表字段类型为nvarchar且为主键,当该字段内容结尾有\u00a0 这种空格时,使用库表输出组件同步数据。该表内容为空时,第一次同步成功,后续同步均会失败。报错提示:违反了主键约束,不能在对象表中插入重复键。希望能修复,谢谢。
你选的是批量插入还是逐条更新?如果是批量插入就是重复的,如果是逐条更新还有这个问题我们就要测试下,再修复。
感谢回复! 是选的逐条更新。这个问题我反复测试了好久,第一次同步过来的是带空格的数据,后续同步的时候感觉是判断数据是否存在时把空格忽略掉了,导致本来应该是更新数据变成了插入数据,而插入的又是带空格的数据,造成了主键重复。
好的,我们本地测试下,有问题的话会第一时间修复
mysql中 nvarchar 类型 不管增加空格 还是增加 \u00a0 都是正常的
你用的是什么数据库? 源和目标分别是什么数据库? 可以发一下.
源和目标的数据库都是sqlserver2008企业版。 \u00a0不是常见的空格,直接用键盘打的空格不能触发这个bug。 可以用这里面的工具 https://www.sojson.com/ascii.html 把ASCII码转换成空格再测试。
确实有这个问题,sql条件无法识别ascii码的字符作为判断条件 只能把源数据读取的时候绑定一个规则把这个ascii码清理掉,主键不能保留这个字符.
新开发了一个规则专门用于清理字段两端的ASCII字符,可以下载这个规则.
https://www.etlcloud.cn/restcloud/view/page/details.html?id=648558493cc0637c30c98c8f&type=3
好的,感谢。