入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

oracle统计字符串中某个字符出现的次数

创建时间:2016-01-12 投稿人: 浏览次数:4073

oracle中length()与lengthb()区别

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; 

声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。