具体说明如下:
LENGTH(string1) 返回以字符为单位的长度.
LENGTHB(string1) 返回以字节为单位的长度.
LENGTHC(string1) 返回以Unicode完全字符为单位的长度.
LENGTH2(string1) 返回以UCS2代码点为单位的长度.
LENGTH4(string1) 返回以UCS4代码点为单位的长度.
在不同的数据库,LENGTHB得到的值可能会不一样。
如LENGTHB('哈’)在不同的数据库得到的值可能是2或3。
因为不同字符集,对汉字的编码是不一样的,
例如ZHS16GBK是两位,采用两个byte位来定义一个汉字。
而在UTF8,采用3个byte。(也有2位汉字的UTF8的可能性)
总之,lengthb的值和你当前数据库的字符集是有关的。
oracle中length()与lengthb()最大的区别在于:
SQL> select length('新春快乐') from dual;
LENGTH('新春快乐')
------------------
4
SQL> select lengthb('新春快乐') from dual;
LENGTHB('新春快乐')
-------------------
8
区别:length求得是字符长度,
lengthb求得是字节长度。