千家信息网

oracle中如何判断一个字符串是否含有汉字

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,oracle中如何判断一个字符串是否含有汉字一.1 BLOG文档结构图一.2 前言部分一.2.1 导读各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩
千家信息网最后更新 2026年11月01日oracle中如何判断一个字符串是否含有汉字

oracle中如何判断一个字符串是否含有汉字

一.1 BLOG文档结构图

一.2 前言部分
一.2.1 导读

各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~:

①全角字符的判断,或者是含有汉字的字符串的判断

本文如有错误或不完善的地方请大家多多指正,ITPUB留言或QQ皆可,您的批评指正是我写作的最大动力。

一.2.2 实验环境介绍

11.2.0.3 RHEL6.5

一.2.3 本文简介

看到网友问,怎么查询表中某个字段数据是不是包含了全角字符啊? 这个问题涉及到几个个函数:to_single_byte、length和lengthb,我之前做开发的时候研究的是如何判断一个字符串中是否包含中文,其实和这个本质是一样的,且看实验部分。

一.3 实验部分
一.3.1 lengthb和length函数结合to_single_byte函数

---含有汉字,严格的说是含有全角字符

SELECT l.name,

length(l.name),

lengthb(l.name)

FROM xb_link l

WHERE length(l.name) != lengthb(l.name)

AND length(l.name) < 20;

以下数据也满足条件:

SELECT l.id,

l.name

FROM xb_link l

WHERE length(l.name) != lengthb(l.name)

AND l.metacategory IN

('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')

AND l.id IN ('301898331', '301898335', '301908187', '301929403');

所以可以借助to_single_byte函数来解决。

SELECT l.id,

l.name,

to_single_byte(l.name),

length(l.name) l1,

lengthb(l.name) l2,

length(to_single_byte(l.name)) l

FROM xb_link l

WHERE length(l.name) != lengthb(l.name)

AND l.metacategory IN

('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')

AND l.id IN ('301898331', '301898335', '301908187', '301929403');

一.3.2 regexp_replace --替换其它字符为''

SELECT

l.id,

l.name

FROM xb_link l

WHERE regexp_replace(TRIM(l.name),

'([A-Za-z0-9]|[[:punct:]]|[[:space:]])',

'') IS NOT NULL;

一.3.3 to_multi_byte 函数--全是全角字符

---全是汉字

SELECT l.name,

to_multi_byte(l.name)

FROM xb_link l

WHERE l.name = to_multi_byte(l.name);

SELECT l.name,

to_multi_byte(l.name)

FROM xb_link l;

一.3.4 网友问题解答:某个字段数据是不是包含了全角字符?

drop table aa;

create table aa (col varchar2(255));

SELECT * FROM aa for update;

SELECT a.col,

to_single_byte(a.col),

length(a.col),

lengthb(a.col),

length(to_single_byte(a.col)),

lengthb(to_single_byte(a.col))

FROM aa a

WHERE (lengthb(a.col) - length(a.col)) <>

(lengthb(to_single_byte(a.col)) - length(to_single_byte(a.col)));

一.4 总结

方法很简单,网友可能还有其他的办法,欢迎留言,对于不同的场景处理方式有很多种,我们应该学会灵活变通。

一.5 About Me

...........................................................................................................................................................................................

本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用

ITPUB BLOG:http://blog.itpub.net/26736162

本文地址:http://blog.itpub.net/26736162/viewspace-1688209/

本文pdf版:http://yunpan.cn/QCwUAI9bn7g7w 提取码:af2d

QQ:642808185 若加QQ请注明你所正在读的文章标题

创作时间地点:2015-06-05 10:00~ 2015-06-05 13:00 于×××交易中心

<版权所有,文章允许转载,但须以链接方式注明源地址,否则追究法律责任!>

...........................................................................................................................................................................................

字符 函数 全角 汉字 数据 字符串 技术 网友 部分 实验 字段 问题 不同 交易中心 作者 前言 办法 动力 地址 地方 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 咖啡豆 中关村互联网 科技集团 互联网金融 科技金融 互联网金融和金融科技 甘肃拓世互联网科技有限公司 互联网和高科技公司 字节跳动和互联网科技 宁夏科技产业互联网案例 广西互联网科技孵化中心 中国科技创新与世界互联网大会 元气玛特互联网科技公司是外包吗 深圳互联网科技的发展 四川互联网展示科技馆设计 郑州欣桑互联网科技有限公司 新氧科技和美国互联网有关系吗 唯美互联网科技 互联网科技的前景 科技互联网专业务虚会材料 广东猫王互联网科技有限公司电话 互联网大会出现的黑科技 百单网互联网科技有限公司怎么样 云之行互联网科技 金融科技与互联网金融 互联网未来科技 一五八零互联网科技 米聚互联网科技南京有限公司排面 互联网科技研发水平 天津腾达互联网科技有限公司 陕西九四连强互联网科技有限公司 广西泛欧互联网科技有限公司
0