`
hunxiejun
  • 浏览: 1145986 次
文章分类
社区版块
存档分类
最新评论

Oracle Length 和 Lengthb 函数说明

 
阅读更多

一.官网的说明

http://download.oracle.com/docs/cd/E11882_01/server.112/e26088/functions088.htm#SQLRF00658

Purpose

TheLENGTHfunctionsreturn the length ofchar.LENGTHcalculates length usingcharacters as defined by the input character set.

--返回以字符为单位的长度.

LENGTHBusesbytes instead of characters.

--返回以字节为单位的长度.

LENGTHCusesUnicode complete characters.

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

LENGTH2usesUCS2 code points.

--返回以UCS2代码点为单位的长度.

LENGTH4usesUCS4 code points.

--返回以UCS4代码点为单位的长度.

charcan beany of the data typeschar,varchar2,nchar,nvarchar2,clob,ornclob.

The exceptionsareLENGTHC,LENGTH2, andLENGTH4, which do not allow chartobe aCLOBorNCLOB. The return value is of data typeNUMBER.Ifcharhas data typeCHAR, then the length includes all trailingblanks. Ifcharis null, then this function returns null.

Restriction on LENGTHB(Lengthb函数的限制)

TheLENGTHBfunctionis supported for single-byte LOBs only. It cannot be used withCLOBandNCLOBdatain a multibyte character set.

Examples

The followingexample uses theLENGTHfunction using a single-byte databasecharacter set:

SELECT LENGTH('CANDIDE') "Length incharacters" FROM DUAL;

Length in characters

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

7

The next example assumes a double-bytedatabase character set.

SELECT LENGTHB ('CANDIDE') "Length inbytes" FROM DUAL;

Length in bytes

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

14

二.示例说明

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

SYS@anqing1(rac1)> SELECT USERENV('LANGUAGE') FROM DUAL;

USERENV('LANGUAGE')

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

AMERICAN_AMERICA.ZHS16GBK

SQL>select length('安庆') from dual;

2

SQL>select lengthb('安庆') from dual;

4

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

6

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

6

通过这个示例,我们可以看出来,Length 和 Lengthb 函数的一个重要用处,就是用来判断记录值里是否有中文内容。

如果有中文,那么Length() != Lengthb()

如果没有中文,那么Length() == Lengthb()

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

Blog: http://blog.csdn.net/tianlesoftware

Weibo: http://weibo.com/tianlesoftware

Email: dvd.dba@gmail.com

DBA1 群:62697716(满); DBA2 群:62697977(满)DBA3 群:62697850(满)

DBA 超级群:63306533(满); DBA4 群:83829929(满) DBA5群: 142216823(满)

DBA6 群:158654907(满) DBA7 群:69087192(满)DBA8 群:172855474

DBA 超级群2:151508914 DBA9群:102954821 聊天 群:40132017(满)

--加群需要在备注说明Oracle表空间和数据文件的关系,否则拒绝申请

分享到:
评论

相关推荐

    oracle中length、lengthb、substr、substrb函数用法介绍

    主要介绍了oracle中length、lengthb、substr、substrb函数用法的相关内容,具有一定参考价值,需要的朋友可以参考下。

    oracle求字符串长度函数length()和hengthb()简介

    对于单字节字符,LENGTHB和LENGTH是一样的. 如可以用length(‘string’)=lengthb(‘string’)判断字符串是否含有中文。 注: 一个汉字在Oracle数据库里占多少字节跟数据库的字符集有关,UTF8时,长度为三。 ...

    自定义函数替换现有函数

    自定义函数替换现有函数 自定义函数替换现有函数

    Oracle 汉字转全拼 拼音首字母

    for i In 1..length(p_cnStr) loop lv_char:=substr(p_cnStr,i,1); if lengthb(lv_char) = 1 then lv_spell:=lv_spell||lv_char; elsif lengthb(lv_char) = 2 then --Select replace(substrb(dump(lv_char,...

    Oracle全角数字转换半角数字

    length和lengthb的区别: length(1234) 4 lengthb(1234) 8 to_single_byte函数用法: to_single_byte(1234) 1234 查找所有全角的数字: select age from test where lengthB(age) >4 替换全角的为...

    Oracle8i_9i数据库基础

    §16.4 过程和函数中的例外处理 282 §16.4.1 使用系统定义的例外处理 282 §16.4.1.1 没有例外处理的缺点 283 §16.4.1.2 使用预定义的例外处理 283 §16.4.2 使用用户定义的例外处理+ 286 §16.4.2.1 定义的用户...

    Oracle截取字符串去掉字段末尾指定长度的字符

    lengthb(string)计算string所占的字节长度:返回字符串的长度,单位是字节 length(string)计算string所占的字符长度:返回字符串的长度,单位是字符 eg: //去掉该字段后面15位字符串 select t.depre_name, substr...

    Oracle Translate 统计字符出现的次数示例代码

    SELECT LENGTHB('ABCDEFGEFGDBE')-LENGTHB(REPLACE('ABCDEFGEFGDBE','E','')) FROM DUAL; Translate 的用法 一、语法:  TRANSLATE(string,from_str,to_str) 二、目的  返回将(所有出现的)from_str中的每个字符...

    javascript form 验证函数 弹出对话框形式

    * @param {} str * @return {} */ function LengthB(str){ var p1 = new RegExp(‘%u..’, ‘g’) var p2 = new RegExp(‘%.’, ‘g’) return escape(str).replace(p1, ”).replace(p2, ”).length } /** * 过滤...

    jquery等宽输出文字插件使用介绍

    代码如下: [removed][removed] [removed] (function($){ $.extend($,{ fixedWidth:function(str,length,char){ str=str.toString();... var num=length-lengthB(str); if(num<0){ str=substringB(str,length-le

    另一维:用于在长度单位之间转换的轻量级库

    用于在长度单位之间转换的...基本用法创建尺寸Dimension(spec[, options]) 可以与new用作构造函数,也可以不与工厂函数一起使用。 let lengthA = new Dimension ( "12mm" ) ; // Constructor syntaxlet lengthB = Dimen

Global site tag (gtag.js) - Google Analytics