共計 973 個字符,預計需要花費 3 分鐘才能閱讀完成。
自動寫代碼機器人,免費開通
length、lengthb 與 substr 怎么在 oracle 中使用?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
在 oracle 中,比較常見的可能是 length、substr,至少我看到的大部分都是這兩個,要不是昨天看代碼發現了 lengthb、substrb,估計我也遺忘了。length 表示的是字符串的字符長度,lengthb 表示的是字符串的字節長度;substr 表示根據字符長度獲取子串,substrb 表示根據字節長度來獲取字串。下面直接看例子來說明:
SELECT length(葉德華 abc) -- length 按字符計,漢字、英文、數字都是 1 個字符,故這里返回 6
FROM dual;
SELECT lengthb(葉德華 abc) -- length 按字節計,我這里是 UTF- 8 編碼,漢字 3 個字節,英文一個字節,故這里返回 12
FROM dual;
SELECT substr( 葉德華 abc , -- substr 按字符截取,截取到 a,返回:葉德華 a
1,
4)
FROM dual;
SELECT substrb( 葉德華 abc ,
1,
2) -- substrb 按字節截取,2 不足一個漢字長度,返回:兩個空格
FROM dual;
SELECT substrb( 葉德華 abc ,
1,
3) -- substrb 按字節截取,3 剛好是一個漢字長度,返回:葉
FROM dual;
SELECT substrb( 葉德華 abc ,
1,
4) -- substrb 按字節截取,4 多余一個漢字少于兩個漢字,返回:葉 加一個空格
FROM dual;
在 oracle 中應該還有其他類似的方法,這里就不總結了,大概就是這么個意思。補充一下,據說在 oracle 中定義字符類型的時候默認的長度是 byte,比如 varchar2(20) 表示的是 20 個字節長度,如果要定義成字符,則 varchar2(20 char),不過,一般我們也都用字節定義。
看完上述內容,你們掌握 length、lengthb 與 substr 怎么在 oracle 中使用的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注丸趣 TV 行業資訊頻道,感謝各位的閱讀!
向 AI 問一下細節
正文完