oracle的length()与lengthb()

首先了解length(),lengthb()及char(),varchar()
length():–返回以字符为单位的长度.
lengthb(): --返回以字节为单位的长度.
char():这是一个定长字符串,会用空格填充来达到最大长度,非null的char(n)总是包含n字节的信息
varchar():这是一个变长字符串,不会用空格填充至最大长度
场景还原

SQL> select length(cast('测试'as char(5))) length from dual;----将"测试"转换为char(5)类型
    LENGTH
        SQL> select length(cast('测试'as char(6))) length from dual;----将"测试"转换为char(6)类型
    LENGTH
----------
  3

 SQL> select length(cast('测试'as char(6))) length from dual;----将"测试"转换为char(6)类型
        LENGTH
 ----------
   4

解释如下
测试占2字符,4字节,不足5字节,所以需要用空格补满5字节,即补一个空格(一个字符),结果就是2+1=3字符

SQL> select length(cast('测试'as char(4))) length from dual;----将"测试"转换为char(4)类型
    LENGTH
----------
         2

测试两字占2个字符4个字节,所以不用补空格刚好char(4),所以结果为2,即两字符

通过这个示例,我们可以看出来,Length 和 Lengthb 函数的一个重要用处,就是用来判断记录值里是否有中文内容。

如果有中文,那么Length() != Lengthb()

如果没有中文,那么Length() == Lengthb()

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29014732/viewspace-772714/,如需转载,请注明出处,否则将追究法律责任。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值