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)

 

 

 

posted @   凉了记忆  阅读(344)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示