甲骨文中如何判断一个字符串是否含有汉字

<强>甲骨文中如何判断一个字符串是否含有汉字

一。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 <强>(

甲骨文中如何判断一个字符串是否含有汉字