獲取字符長度


The LENGTH functionsreturn the length of char. LENGTH calculates length usingcharacters as defined by the input character set.數據庫

     --返回以字符爲單位的長度.spa

LENGTHB usesbytes instead of characters.code

     --返回以字節爲單位的長度.orm

LENGTHC usesUnicode complete characters.字符串

     --返回以Unicode徹底字符爲單位的長度.input

LENGTH2 usesUCS2 code points.string

     --返回以UCS2代碼點爲單位的長度.it

LENGTH4 usesUCS4 code points.io

    --返回以UCS4代碼點爲單位的長度.function



lengthb(string)計算string所佔的字節長度:返回字符串的長度,單位是字節

length(string)計算string所佔的字符長度:返回字符串的長度,單位是字符

 

對於單字節字符,LENGTHB和LENGTH是同樣的.

如能夠用length(‘string’)=lengthb(‘string’)判斷字符串是否含有中文。

 

一個漢字在Oracle數據庫裏佔多少字節跟數據庫的字符集有關,UTF8時,長度爲三。

select lengthb(''飄'') from dual   可查詢漢字在Oracle數據庫裏佔多少字節


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

相關文章
相關標籤/搜索