SQL server 特殊字符"\u0000"处理

某天,接到用户反馈点击某个项目分组的时候页面报错,点击其他项目不报错。

初步以为是下标数字特殊符号导致的。通过前台输出对应的数值后发现该字段末尾有个“\u0000”特殊字符(ASCII字符char(0))。通常是导入数据时的格式问题或是程序处理时将页面中的换行字符保存数据库导致的。

像SQL server的SSMS中一般是不显示该字符的。通过DataGrip工具查询该字段,发现有这种特殊字符(需要将光标移动至该字段中)。

 因此需要在数据库中将该表字段中包含此字符的都要查询出来进行处理掉。

但是查询该特殊符号,不能简单的用 like '%nul%'或者直接将该段复制出来进行模糊查询。需要进行特殊的字符编码进行转义查询。

select * from tablename where columnname COLLATE Latin1_General_BIN LIKE '%' + CHAR(0) + '%'

最后通过replace函数进行替换掉。

update tableName set columnName = replace( columnName COLLATE Latin1_General_BIN , char(0) , '') where xxxx=xxx

注意:需要将 COLLATE Latin1_General_BIN 放到要替换的字段名称后面。

参考链接 https://www.cnblogs.com/BinBinGo/p/11892154.html

 

posted @   kowqq  阅读(315)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示