sql server中的一个坑-len与datalength区别

发布时间:2020-08-17 19:51:58 作者:datapeng
来源:ITPUB博客 阅读:198

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

select max(len(subject_name)) from dbtabletest;

但返回值为129。

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

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

还好,最终找到问题了!

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

1、空格处理

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

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

2、对于汉字的处理

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


推荐阅读:
  1. SQL SERVER SP的解密过程介绍
  2. SQL Server如何查找表名或列名中包含空格的表和列

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

-len 中的 datalength

上一篇:我的学习经历——Linux系统入门教程

下一篇:hana studio start with 报错

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》