Oracle转SQL Server迁移特殊字符问题:SSMA重复识别配置咨询
我之前在做Oracle到SQL Server的迁移时也碰到过几乎一模一样的问题,折腾了好一阵才找到几个有效的配置调整方式,给你整理一下:
调整SSMA项目核心配置
打开你的SSMA迁移项目,通过以下路径修改关键设置:
- 点击顶部菜单的 Tools > Project Settings
- 在弹出的设置窗口里,展开General节点,选择Comparison选项卡:
- 取消勾选 Ignore trailing spaces:这个设置原本会让SSMA忽略字符串末尾的空格差异,取消后就能区分
Expression和Expression这类内容了 - 取消勾选 Use linguistic equivalence(部分SSMA版本可能叫“Use locale-specific string comparison”):这个选项会启用语言层面的字符等价匹配,比如把德语的
ß识别为ss,取消后会严格按字符的Unicode值做比较
- 取消勾选 Ignore trailing spaces:这个设置原本会让SSMA忽略字符串末尾的空格差异,取消后就能区分
额外:目标SQL Server排序规则调整
如果上面的设置还不能彻底解决问题,可以尝试将目标SQL Server数据库的排序规则改为二进制排序规则(比如Latin1_General_BIN2)。二进制排序是直接基于字符的二进制编码值进行比较,完全不会做语言等价转换,也不会忽略空格。不过要注意,这个调整会影响数据库里所有后续的字符串比较行为,需要提前评估业务影响。
内容的提问来源于stack exchange,提问作者Hichem Brh
相关产品推荐
相关产品推荐

