SQL server 特殊字符"\u0000"处理
  Z3yVbKvD04VX 22天前 84 0

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

初步以为是下标数字特殊符号导致的。通过前台输出对应的数值后发现该字段末尾有个“\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

 

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

上一篇: sqlite3使用记录 下一篇: Redis组件介绍(一)
  1. 分享:
最后一次编辑于 22天前 0

暂无评论

推荐阅读
  QNciO4k8wlAw   2024年08月07日   43   0   0 SQL Server
  IYkkJ2eDW1ug   2024年08月07日   52   0   0 SQL Server