赞
踩
oracle中length()与lengthb()区别
OracleSQL.oracle中length()与lengthb()区别
SQL> select length('阿猪') from dual;
LENGTH('阿猪')
--------------
2
SQL> select lengthb('阿猪') from dual;
LENGTHB('阿猪')
---------------
4
区别:length求得是字符长度,lengthb求得是字节长度。
----------------------------------------------------------------------------------------------------
SQL> select sysdate from dual; SYSDATE -------------- 26-9月 -05 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
SELECT LENGTHB(TRANSLATE('1,2,34,5',',12345',',')) FROM DUAL;
SELECT LENGTHB('1,2,34,5')-LENGTHB(REPLACE('1,2,34,5',',','')) FROM DUAL;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。