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數據庫里占多少字節


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM