oracle判断字段中包含全角字符
如题,我们可以用2个函数 length() 和 lengthb()
length()表示字符个数。
lengthb()表示字节数。
在varchar2()中,“abc”算3个字符,“艾尔法”也算三个字符。
“abc”有三个字节,但是”艾尔法“就不一定了。
例子如下:
select a.* ,length(a),lengthb(a) from test1 a;
如上所示,字符数不等于字节数!
在上面的数据库中,一个英文字符为1个字节,一个中文为3个字节。
如上所示,字符数不等于字节数!
在上面的数据库中,一个英文字符为1个字节,一个中文为3个字节。在客户取的值中,是有不少中文的,这就是超出最大值的原因了。
只要用条件筛选这2个不相等的,就说明字段包含全角字符了,即
select * from t_pm_user u where lengthb(fdescription_l1) <> length(fdescription_l1)
linux下的docker操作命令及异常