Oracle中的length、lengthb、substr、substrb方法

1、length( )

length(string)计算string所占的字符长度:返回字符串的长度,单位是字符

--查询表中身份证号码错误的数据(不是18位身份证号码)
select
* from tb_ry_syrk s where length( s.gmsfhm ) != 18

 2、lengthb( )

lengthb(string)计算string所占的字节长度:返回字符串的长度,单位是字节

 

3、substr( a , int1 , int2 )

substr( a , int1 , int2 )根据字符长度截取子串;

a---待截取字符串

int1---开始截取下标(从1开始)

int2---截取长度。

substr('飞哥哥ora', 1, 4)

-- substr按字符截取,截取到a,返回:飞哥哥o 

实例:

--根据身份证号码更新出生日期
update tb_ry_syrk t set t.csrq=
( select to_date ( substr( g.gmsfhm , 7,8 ) , ' yyyyMMdd ' )  
csrq from tb_ry_syrk g where  t.gmsfhm = g.gmsfhm )

4、substrb( a , int1 , int2 )

substrb( a , int1 , int2 )根据字节长度截取子串;

substrb('飞哥哥ora', 1, 3)

-- substrb按字节截取,截取到a,返回:飞 (1个汉字在Oracle中占3个字节)

 

对于单字节字符,LENGTHB和LENGTH、substr和substrb 是一样的.

如可以用length(‘string’)=lengthb(‘string’)判断字符串是否含有中文。 

注:

一个汉字在Oracle数据库里占多少字节跟数据库的字符集有关,UTF8时,长度为三。

select length('cctv') from dual ;可查询汉字在Oracle数据库里占多少字节

转载于:https://www.cnblogs.com/su-zhifei/p/9300049.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值