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