我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

sql server中的一个坑-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返回的是字节数,一个汉字两个字节。


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

sql server 与 mysql 中常用的SQL语句区别讲解

目录sql server 与 mysql 的区别1. 首先说一下sql语句结束标志2. 查看表结构数量等3、查询前几条记录4、获取当前时间5、从数据库定位到某张表6、强制不使用缓存查询6、查询一个数据库所有的表 和表下的编程客栈所有列信息s
2022-12-16

编程热搜

目录