<强>甲骨文中如何判断一个字符串是否含有汉字强>
一。1博客文档结构图
一。2前言部分
<编辑>一.2.1导读编辑>各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~ O (∩_∩) O ~:
①全角字符的判断,或者是含有汉字的字符串的判断
<强>本文如有错误或不完善的地方请大家多多指正,ITPUB留言或QQ皆可,您的批评指正是我写作的最大动力。强>
<编辑>一.2.2实验环境介绍编辑>11.2.0.3 RHEL6.5
<编辑>一.2.3本文简介编辑>看到网友问,怎么查询表中某个字段数据是不是包含了全角字符啊?这个问题涉及到几个个函数:to_single_byte,长度和lengthb,我之前做开发的时候研究的是如何判断一个字符串中是否包含中文,其实和这个本质是一样的,且看实验部分。
一。3实验部分
<编辑>一.3.1 lengthb和长度函数结合to_single_byte函数编辑>- - -含有汉字,严格的说是含有全角字符
选择l.name <强>、强>
长度<强>(强> l.name <强>),强>
lengthb <强>(强> l.name <强>)强>
得到,xb_link长度l
, <强>(强> l.name <强>)强> <>强壮!=强> lengthb <强>(强> l.name <强>)强>
和长度<强>(强> l.name <强>)强> <强> & lt; 强> <强> 20 强> <强>;强>
以下数据也满足条件:
选择l。id <强>,强>
,,,,,,,l.name
得到,xb_link长度l
, <强>(强> l.name <强>)强> <>强壮!=强> lengthb <强>(强> l.name <强>)强>
以及,,l解说在
<强>(强> com.gxlu.ngrm.network.DDNCircuit <强>,强>
com.gxlu.ngrm.network.FRCircuit <强>,强>
com.gxlu.ngrm.network.ATMCircuit <强>,强>
com.gxlu.ngrm.network.DDNOCircuit <强>,强>
' com.gxlu.ngrm.network.FROCircuit ' <强>)强>
以及,,lid在<强>(强>‘301898331’<强>,强>‘301898335’<强>,强>‘301908187’<强>,强> ' 301929403 ' <强>);强>
所以可以借助to_single_byte函数来解决。
选择l。id <强>,强>
,,,,,,,l.name <强>,>
,,,,,,,to_single_byte <强>(强> l.name <强>),强>
长度<强>(强> l.name <强>)强> l1 <强>、强>
lengthb <强>(强> l.name <强>)强> l2 <强>、强>
长度<强>(强> to_single_byte <强>(强> l.name <强>))强> l
得到,xb_link长度l
, <强>(强> l.name <强>)强> <>强壮!=强> lengthb <强>(强> l.name <强>)强>
以及,,l解说在
<强>(强> com.gxlu.ngrm.network.DDNCircuit <强>,强>
com.gxlu.ngrm.network.FRCircuit <强>,强>
com.gxlu.ngrm.network.ATMCircuit <强>,强>
com.gxlu.ngrm.network.DDNOCircuit <强>,强>
' com.gxlu.ngrm.network.FROCircuit ' <强>)强>
以及,,lid在<强>(强>‘301898331’<强>,强>‘301898335’<强>,强>‘301908187’<强>,强> ' 301929403 ' <强>);强>
<编辑>一的.3.2 regexp_replace——替换其它字符为" 编辑>
选择l。id <强>,强>
l.name
得到,xb_link l
WHERE regexp_replace <强>(>强修剪<强>(强> l.name <强>),强>
”([A-Za-z0-9] | [[: punct:]] |[[:空间:]])的<强>、强>
" <>强)强>不是零,
<编辑>一.3.3 to_multi_byte函数——全是全角字符编辑>
- - -全是汉字
选择l.name <强>、强>
,,,,,,to_multi_byte <强>(强> l.name <强>)强>
得到,xb_link l
WHERE l.name <强>=强> to_multi_byte <强>(强> l.name <强>);强>
<强> 强>
选择l.name <强>、强>
,,,,,,to_multi_byte <强>(