sqlserver中的一个坑-len与datalength区别

今天在处理问题时,统计一个字段最大字节数时,出现了问题:

成都创新互联始终坚持【策划先行,效果至上】的经营理念,通过多达十多年累计超上千家客户的网站建设总结了一套系统有效的全网整合营销推广解决方案,现已广泛运用于各行各业的客户,其中包括:雨棚定制等企业,备受客户认可。

select max(len(subject_name)) from dbtabletest;

但返回值为129。

但在oracle端始终出现报错,说插入字符数过大,真是奇葩。

搞了半天,就把这个subject_name,拷贝出来,在文本编辑器中发现了有一行值后面有太多空格。直到现在才知道,需要使用datalength才能统计到结尾的空格,真是又被sql server坑了一把。

还好,最终找到问题了!

当采用非Unicode编码时,即varchar类型的字符串时,DataLength()和Len()的区别:

1、空格处理

Len() 字符串表达式的字符数,不计尾部空格,但计头部空格和中间的空格;

DataLength() 任何表达式的字节数,包括空格 。

2、对于汉字的处理

区别在于Len只返回字符数,一个汉字代表一个字符。Datalength返回的是字节数,一个汉字两个字节。


网站标题:sqlserver中的一个坑-len与datalength区别
标题URL:http://bzwzjz.com/article/goggho.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 定制网站设计 营销型网站建设 成都响应式网站建设公司 自适应网站建设 品牌网站建设 重庆手机网站建设 网站设计 营销型网站建设 定制级高端网站建设 成都网站设计 成都网站设计 成都网站建设 商城网站建设 成都网站建设 响应式网站建设 成都网站设计 营销型网站建设 成都网站设计 响应式网站设计 高端网站设计 成都网站制作 营销型网站建设