溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

length、lengthb與substr怎么在oracle中使用

發(fā)布時(shí)間:2021-01-04 15:01:47 來源:億速云 閱讀:225 作者:Leah 欄目:數(shù)據(jù)庫(kù)

length、lengthb與substr怎么在oracle中使用?相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。

在oracle中,比較常見的可能是length、substr,至少我看到的大部分都是這兩個(gè),要不是昨天看代碼發(fā)現(xiàn)了lengthb、substrb,估計(jì)我也遺忘了。length表示的是字符串的字符長(zhǎng)度,lengthb表示的是字符串的字節(jié)長(zhǎng)度;substr表示根據(jù)字符長(zhǎng)度獲取子串,substrb表示根據(jù)字節(jié)長(zhǎng)度來獲取字串。下面直接看例子來說明:

SELECT length('葉德華abc') -- length按字符計(jì),漢字、英文、數(shù)字都是1個(gè)字符,故這里返回6 
 FROM dual; 
SELECT lengthb('葉德華abc') -- length按字節(jié)計(jì),我這里是UTF-8編碼,漢字3個(gè)字節(jié),英文一個(gè)字節(jié),故這里返回12 
 FROM dual; 
SELECT substr('葉德華abc', -- substr按字符截取,截取到a,返回:葉德華a 
       1, 
       4) 
 FROM dual; 
SELECT substrb('葉德華abc', 
        1, 
        2) -- substrb按字節(jié)截取,2不足一個(gè)漢字長(zhǎng)度,返回:兩個(gè)空格 
 FROM dual; 
SELECT substrb('葉德華abc', 
        1, 
        3) -- substrb按字節(jié)截取,3剛好是一個(gè)漢字長(zhǎng)度,返回:葉 
 FROM dual; 
SELECT substrb('葉德華abc', 
        1, 
        4) -- substrb按字節(jié)截取,4多余一個(gè)漢字少于兩個(gè)漢字,返回:葉 加一個(gè)空格 
 FROM dual;

在oracle中應(yīng)該還有其他類似的方法,這里就不總結(jié)了,大概就是這么個(gè)意思。補(bǔ)充一下,據(jù)說在oracle中定義字符類型的時(shí)候默認(rèn)的長(zhǎng)度是byte,比如varchar2(20)表示的是20個(gè)字節(jié)長(zhǎng)度,如果要定義成字符,則varchar2(20 char),不過,一般我們也都用字節(jié)定義。

看完上述內(nèi)容,你們掌握l(shuí)ength、lengthb與substr怎么在oracle中使用的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI