【函数】Oracle函数系列(1)--字符函数1.6--length函数

发表于 讨论求助 2023-05-10 14:56:27

想关注我吗?请点击图片上方蓝字小麦苗关注即可,关注后您将可以每日获得最实用的数据库技术。请将小麦苗公众号置顶,小麦苗不喜欢被压着,~O(∩_∩)O~

作者小麦苗的今日寄语 

有时候,不要把世界看得太孤单了,正如你总在想念某些人,也总会有某些人在一直想念你。


(建议WIFI下观看)

       

    各位粉丝朋友,从10月22日开始,小麦苗打算花很长很长的一段时间来给大家分享有关Oracle的一些系统函数的学习笔记,有的内容来自于网络,大家有什么问题可以留言,欢迎交流。

    今天给大家分享的是【函数】Oracle函数系列(1)--字符函数1.6--length函数。

函数历史文章

【函数】wm_concat包的订制

 Oracle中如何判断一个字符串是否含有汉字

 Oracle中如何判断一个字符串是否含有汉字(2)

【函数】Oracle函数系列(1)--字符函数1.1--lower函数

【函数】Oracle函数系列(1)--字符函数1.2--upper函数

【函数】Oracle函数系列(1)--字符函数1.3--initcap函数

【函数】Oracle函数系列(1)--字符函数1.4--concat函数

【函数】Oracle函数系列(1)--字符函数1.5--substr函数


【函数】Oracle函数系列(1)--字符函数1.6--length函数

3.0.6   length:求字符串长度

SELECT length('重庆贵阳30N重庆贵阳30N-77623') FROM dual;

 

 

SELECT length(77623) FROM dual;

 

 

SELECT length(sysdate),sysdate FROM dual;

 

 

SELECT length(1/2) FROM dual;

 

 

SELECT length('1/2'),

       length(1 / 2),

       1 / 2,

 length(0.5)

FROM   dual;

 

一、  

The LENGTH functions return the length of char. LENGTH calculates length usingcharacters as defined by the input character set.  --返回以字符为单位的长度.

LENGTHB usesbytes instead of characters.  --返回以字节为单位的长度.

LENGTHC usesUnicode complete characters. --返回以Unicode完全字符为单位的长度.

LENGTH2 usesUCS2 code points.--返回以UCS2代码点为单位的长度.

LENGTH4 usesUCS4 code points.  --返回以UCS4代码点为单位的长度.

 

char can be any of the data types CHAR, VARCHAR2, NCHAR, NVARCHAR2, CLOB, or NCLOB. The exceptions are LENGTHC, LENGTH2, and LENGTH4, which do not allow char to be a CLOB or NCLOB. The return value is of data type NUMBER. If char has data type CHAR, then the length includes all trailing blanks. If char is null, then this function returns null.

Restriction on LENGTHB The LENGTHB function is supported for single-byte LOBs only. It cannot be used with CLOB and NCLOB data in a multibyte character set.

Examples

The following example uses the LENGTH function using a single-byte database character set:

SELECT LENGTH('CANDIDE') "Length in characters"

  FROM DUAL;

Length in characters

--------------------

                   7

The next example assumes a double-byte database character set.

SELECT LENGTHB ('CANDIDE') "Length in bytes"

  FROM DUAL;

 

Length in bytes

---------------

             14

 

SQL> select length('北京') from dual;

LENGTH('北京')

--------------

             2

SQL> select lengthb('北京') from dual;

LENGTHB('北京')

---------------

              6

SQL> select lengthb('BeiJing') from dual;

LENGTHB('BEIJING')

------------------

                 7

SQL> select length('BeiJing') from dual;

LENGTH('BEIJING')

-----------------

                7

 

值得一提的是:

在不同的数据库,因为字符集的不同,LENGTHB得到的值可能会不一样。如ZHS16GBK采用两个byte位来定义一个汉字。而在UTF8,采用3个byte

--查看字符集语句

SQL> select * from nls_database_parameters where parameter='NLS_CHARACTERSET';

PARAMETER                      VALUE

select lengthb('齐'),length('齐') from dual

在计算单字节的字符串时。返回的值是相同的。

select lengthb('string'),length('string') from dual

2 、通过对同一个字符串的长度判断

lengthb(string)=length(string)

可以判断是否含有汉字。

例子

SELECT lengthb('齐'),

       length('齐')

FROM   dual;

 

 

SELECT l.code,

       length(l.code),

       lengthb(l.code),

       length2(l.code),

       length4(l.code),

       lengthc(l.code)

FROM   xb_link l

WHERE  length(l.code) != lengthb(l.code)

AND    length(l.code) < 20;

 

二、 判断字符串中是否含有汉字

参考:

http://blog.itpub.net/26736162/viewspace-1688209/

 




About Me:小麦苗●李华荣

● 本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用

● 本文在itpub()、博客园()和个人微信公众号(xiaomaimiaolhr)上有同步更新,推荐pdf文件阅读

● QQ群:230161599 微信群:私聊

● 本文itpub地址:http://blog.itpub.net/26736162/viewspace-2126927/

● 本文博客园地址:

● 小麦苗云盘地址:

●  联系我请加QQ好友(642808185),注明添加缘由

● 于 2016-10-22 15:00 ~ 2016-10-22 23:00 在泰兴公寓完成

● 文章内容来源于小麦苗的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解

●【版权所有,文章允许转载,但须以链接方式注明源地址,否则追究法律责任】


长按识别二维码或微信客户端扫描下边的二维码来关注小麦苗的微信公众号:xiaomaimiaolhr,学习最实用的数据库技术。




发表
26906人 签到看排名