1.情景展示
如何快速的判斷出指定字符串中是否包含中文呢?
2.解決方案
通過length()和lengthb()函數的比對結果進行判斷。
lengthb(string)計算string所占的字節長度:返回字符串的字節長度,單位是字節;
length(string)計算string所占的字符長度:返回字符串的字符長度,單位是字符。
在英文中,一個英文字符僅占一個字節;
在中文中,一個中文字符至少要占兩個字節,一個漢字在Oracle數據庫里占多少字節跟數據庫的字符集有關,UTF8時,長度為三。
所以,可以通過判斷兩個函數的返回值是否相等,就能判斷出字符串中是否包含中文。
length('string')=lengthb('string')
SELECT DECODE(LENGTH('string'),LENGTHB('string'),'不包含','包含') 是否包含中文 FROM DUAL