1.情景展示
如何快速的判断出指定字符串中是否包含中文呢?
2.解决方案
通过length()和lengthb()函数的比对结果进行判断。
lengthb(string)计算string所占的字节长度:返回字符串的字节长度,单位是字节;
length(string)计算string所占的字符长度:返回字符串的字符长度,单位是字符。
在英文中,一个英文字符仅占一个字节;
在中文中,一个中文字符至少要占两个字节,一个汉字在Oracle数据库里占多少字节跟数据库的字符集有关,UTF8时,长度为三。
所以,可以通过判断两个函数的返回值是否相等,就能判断出字符串中是否包含中文。
length('string')=lengthb('string')
SELECT DECODE(LENGTH('string'),LENGTHB('string'),'不包含','包含') 是否包含中文 FROM DUAL