Oracle中length和lengthb的区别介绍:
SQL> select length('51博客') from dual;
LENGTH('51博客')
----------------
4
SQL> select lengthb('51CTO博客') from dual;
LENGTHB('51CTO博客')
--------------------
9
区别:length求的是字符长度,lengthb求的是字节长度。
-------------------------------------------------------------------------------
SQL> select to_char(sysdate) from dual;
TO_CHAR(SYSDATE)
----------------
04-11月-13
SQL> select length(sysdate) from dual;
LENGTH(SYSDATE)
---------------
9
SQL> select lengthb(sysdate) from dual;
LENGTHB(SYSDATE)
----------------
10
length返回的是字符数
lengthb返回的是字节数
汉字“月”在length时,返回的时1
而在lengthb时返回的时2
length指的是字符个数,lengthb指的是字节数。字符个数跟数据库字符集有很大关系。length和lengthb的参数都为varchar2型,因此length(sysdate)有一个隐式的类型转换,实际上等同于length(to_char(sysdate)),ORACLE安装好后默认的NLS_DATE_FORMAT参数值为DD-MON-RR,结果就相当于length('28-9月 -05')和
lengthb('28-9月 -05')了,其结果就是9和10。