Oracle-如何判断字符串包含中文字符串(汉字),删除中文内容及保留中文内容

今天遇见一个问题需要将字段中包含中文字符串的筛选出来

--建表
CREATE TABLE HADOOP1.AAA
(
ID VARCHAR2(255)
);
--添加字段INSERT INTO HADOOP1.AAA(ID)VALUES('理解');....--查询表内容SELECT * FROM HADOOP1.AAA;

在这里插入图片描述

在网上查找了一下有以下三种方式:

第一种:通过中文字符在length与lengthb的字节长度不同来判断

length计算字符长度,lengthb计算字节长度

select id,length(id),lengthb(id) from HADOOP1.AAA

在这里插入图片描述

筛选出包含中文的字符串

select id,length(id),lengthb(id) from HADOOP1.AAA where length(id) !=lengthb(id)

在这里插入图片描述

第二种:通过asciistr的转换性质将中文字符串筛选出来

ASCIISTR函数,参数是一个字符串,如果这个字符在ASCII码表中有,则转成ASCII表中的字符。如果没有,则转成\xxxx格式,xxxx是UTF-16的编码。

下面是ASCII表

    chr(9) tab空格       chr(10) 换行      chr(13) 回车        Chr(13)&chr(10) 回车换行       chr(32) 空格符       chr(34) 双引号       chr(39) 单引号chr(33) !        chr(34) "        chr(35) #        chr(36) $        chr(37) %        chr(38) &        chr(39) '        chr(40) (        chr(41) )        chr(42) *chr(43) +        chr(44) ,        chr(45) -        chr(46) .        chr(47) /Chr(48) 0        Chr(49) 1        Chr(50) 2        Chr(51) 3        Chr(52) 4        Chr(53) 5        Chr(54) 6        Chr(55) 7        Chr(56) 8        Chr(57) 9chr(58)            chr(59) ;        chr(60) <        chr(61) =        chr(62) >        chr(63) ?        chr(64) @chr(65) A        chr(66) B        chr(67) C        chr(68) D        chr(69) E        chr(70) F        chr(71) G        chr(72) H         chr(73) I          chr(74) Jchr(75) K        chr(76) L        chr(77) M        chr(78) N        chr(79) O        chr(80) P        chr(81) Q        chr(82) R        chr(83) S        chr(84) Tchr(85) U        chr(86) V        chr(87) W        chr(88) X        chr(89) Y        chr(90) Zchr(91) [        chr(92) \        chr(93) ]        chr(94) ^        chr(95) _        chr(96) `chr(97) a        chr(98) b        chr(99) c        chr(100) d        chr(101) e       chr(102) f       chr(103) g       chr(104) h        chr(105) ichr(106) j        chr(107) k       chr(108) l        chr(109) m       chr(110) n       chr(111) o       chr(112) p        chr(113) q       chr(114) rchr(115) s       chr(116) t        chr(117) u       chr(118) v       chr(119) w       chr(120) x        chr(121) y       chr(122) zchr(123) {       chr(124) |       chr(125) }       chr(126) ~        chr(127)          chr(128)         chr(153)chr(169) ©          chr(174) ®

在这里插入图片描述

如果表中只有中文和英文、数字等字符,则可以用\来判断是否带有中文。
使用asciistr函数得出是否字段里面包含“/”,因为当中文字符转换为ascii后,变成“/FFFD/FFFD”,但是需要注意一个特殊字符“/”,当它出现的时候转换后的码为“/005C”

代码运行:

select id,asciistr(id) from HADOOP1.AAA 

在这里插入图片描述

运用:

select * from HADOOP1.AAA  where  REPLACE(asciistr(id),'\005C','') like '%\%'

在这里插入图片描述

注释:在上面图结果中可以看出包含中文的字符串通过asciistr,转换成包含“\”的字符串,但是这个数据方法有个弊端,原始字符串中不能包含“\”。故我这里用了REPLACE将“\”替换了一下,
同时这个方法不止能筛查中文,还能筛选日文,如果有其他语言就不可以用这种方法

第三种:通过CONVERT 根据类型来进行筛选

CONVERT 函数是 SQL 中的一种类型转换函数,它用于将一个数据类型转换为另一个数据类型。
CONVERT(inputstring,dest_charset,source_charset) inputstring:
要转换的字符串
dest_charset:目标字符集
source_charset:原字符集

select id,CONVERT(id,'ZHS16GBK','utf8') from HADOOP1.AAA where id <> CONVERT(id,'ZHS16GBK','utf8')

在这里插入图片描述

通过上面的可以将包含中文的字符串找出来,那如何能删除里面的中文呢

如要删除字符串中的中文可以用到正则表达式
regexp_replace(tel, ‘[^\x00-\xff]’, ‘’)

select id,regexp_replace(id, '[^\x00-\xff]', '') from HADOOP1.AAA

在这里插入图片描述

–只保留中文及小写字母

select id,regexp_replace(id, '[\u4e00-\u9fa5]', '') from HADOOP1.AAA

在这里插入图片描述
注释:这种表达需要注意字符串中如果包含小写字母,及不在这个范围内容同样可以删除,oracle正则表达式regexp_substr、regexp_like、regexp_replace是无法像其他正则表达式一样用[\u4e00-\u9fa5]来匹配中文的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/89413.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安全远控如何设置?揭秘ToDesk、TeamViewer 、向日葵安全远程防御大招

写在前面一、远程控制&#xff1a;安全性不可忽略二、远控软件安全设置实测◉ ToDesk◉ TeamViewer◉ 向日葵 三、远控安全的亮点功能四、个人总结与建议 写在前面 说到远程办公&#xff0c;相信大家都不陌生。远程工作是员工在家中或者其他非办公场所上班的一种工作模式&…

每天一道leetcode:712. 两个字符串的最小ASCII删除和(动态规划中等)

今日份题目&#xff1a; 给定两个字符串s1 和 s2&#xff0c;返回 使两个字符串相等所需删除字符的 ASCII 值的最小和 。 示例1 输入: s1 "sea", s2 "eat" 输出: 231 解释: 在 "sea" 中删除 "s" 并将 "s" 的值(115)加入…

【Quarkus技术系列】打造基于Quarkus的云原生微服务框架实践(1)

前提介绍 本系列文章主要讲解如何基于Quarkus技术搭建和开发"专为Kubernetes而优化的Java微服务框架"的入门和实践&#xff0c;你将会学习到如何搭建Quarkus微服务脚环境及脚手架&#xff0c;开发Quarkus的端点服务&#xff0c;系统和应用层级的配置介绍与Quarkus的…

【MongoDB】数据库、集合、文档常用CRUD命令

目录 一、数据库操作 1、创建数据库操作 2、查看当前有哪些数据库 3、查看当前在使用哪个数据库 4、删除数据库 二、集合操作 1、查看有哪些集合 2、删除集合 3、创建集合 三、文档基本操作 1、插入数据 2、查询数据 3、删除数据 4、修改数据 四、文档分页查询 …

三维可视化平台有哪些?Sovit3D可视化平台怎么样?

随着社会经济的发展和数字技术的进步&#xff0c;互联网行业发展迅速。为了适应新时代社会发展的需要&#xff0c;大数据在这个社会经济发展过程中随着技术的进步而显得尤为重要。同时&#xff0c;大数据技术的快速发展进程也推动了可视化技术的飞速发展&#xff0c;国内外各类…

【Sklearn】基于随机森林算法的数据分类预测(Excel可直接替换数据)

【Sklearn】基于随机森林算法的数据分类预测&#xff08;Excel可直接替换数据&#xff09; 1.模型原理1.1 模型原理1.2 数学模型 2.模型参数3.文件结构4.Excel数据5.下载地址6.完整代码7.运行结果 1.模型原理 随机森林&#xff08;Random Forest&#xff09;是一种集成学习方法…

flutter开发实战-实现左右来回移动的按钮引导动画效果

flutter开发实战-实现左右来回移动的按钮引导动画效果 最近开发过程中需要实现左右来回移动的按钮引导动画效果 一、动画 AnimationController用来控制一个或者多个动画的正向、反向、停止等相关动画操作。在默认情况下AnimationController是按照线性进行动画播放的。Animati…

五个独特且有趣的ChatGPT指令

今天分享5个很实用的指令&#xff0c;这几个指令很多时候对我们输出内容的连贯性、文章风格、创意性等方面有着决定性的作用。 目录 第一个&#xff1a;Max tokens&#xff08;最大令牌&#xff09; 第二个&#xff1a;Top_p(控制采样) 第三个&#xff1a;Presence_penalty …

draw.io画图时,用一个箭头(线段)连结一个矩形和直线时,发现,无论怎么调节,都无法使其无缝连接。

问题描述&#xff1a;draw.io画图时&#xff0c;用一个箭头&#xff08;线段&#xff09;连结一个矩形和直线时&#xff0c;发现&#xff0c;无论怎么调节&#xff0c;都无法使其无缝连接。要么少一段&#xff0c;如图1所示。要么多一段&#xff0c;如图2所示。 图1&#xff0c…

卫星--夏令营

几何问题&#xff1a;就是用几何数学知识解题即可 但是越是数学编程题&#xff0c;越容易忽略数学题中的细节 1.地球半径你算进去了吗? 2.sin三角函数&#xff0c;M_PI标准圆周率在cmath文件里 3.有可能给出的夹角超过180呢&#xff0c;没给数据要求&#xff0c;就要自己考…

在生产环境中部署Elasticsearch:最佳实践和故障排除技巧———索引与数据上传(二)

前言 「作者主页」&#xff1a;雪碧有白泡泡 「个人网站」&#xff1a;雪碧的个人网站 「推荐专栏」&#xff1a; ★java一站式服务 ★ ★ React从入门到精通★ ★前端炫酷代码分享 ★ ★ 从0到英雄&#xff0c;vue成神之路★ ★ uniapp-从构建到提升★ ★ 从0到英雄&#xff…

使用阿里云服务器搭建Discuz论坛网站教程基于CentOS系统

阿里云百科分享使用阿里云服务器建站教程&#xff0c;本文是搭建Discuz论坛&#xff0c;Discuz!是一款通用的社区论坛软件系统&#xff0c;它采用PHP和MySQL组合的基础架构&#xff0c;为您提供高效的论坛解决方案。本文介绍如何在CentOS 7操作系统的ECS实例上搭建Discuz! X3.4…

JAVA宝典----输入输出流(理解记忆)

目录 一、 Java IO流的实现机制是什么&#xff1f; 二、Java中有几种类型的流&#xff1f; 三、管理文件和目录的类是什么&#xff1f; 四、Java Socket是什么&#xff1f; 五、什么是 JAVA NIO&#xff1f; 六、 什么是Java序列化&#xff1f; &#xff08;1&#xff09;序…

连续两年增收不增利,比亚迪电子靠新能源汽车业务再次起飞?

在净利润连续两年下挫之后&#xff0c;比亚迪电子&#xff08;00285.HK&#xff09;终于迎来了好消息。 不久前比亚迪电子发布2023年中期盈利预告显示&#xff0c;上半年净利润同比增加115%-146%&#xff08;2022年上半年的净利润显示6.34亿元&#xff09;。 这主要受益于大客…

tomcat多实例与动静分离

实验&#xff1a;在一台虚拟机上配置多台tomcat 1.配置 tomcat 环境变量 vim /etc/profile.d/tomcat.sh source /etc/profile.d/tomcat.sh 2.修改 tomcat2 中的 server.xml 文件&#xff0c;要求各 tomcat 实例配置不能有重复的端口号 vim /usr/local/tomcat/tomcat2/conf/…

山东布谷科技直播平台搭建游戏开发技术分享:数据存储的重要意义

在市场上的热门的直播平台中&#xff0c;有很多小程序为用户提供各种各样的功能&#xff0c;这其中就有很多游戏小程序&#xff0c;当今社会独生子女众多&#xff0c;很多作为独生子女的用户都会去选择一个能够社交互动的APP来填补内心的空虚&#xff0c;而直播平台的实时互动的…

Node.js学习笔记-04

这第九章也是个大重点 九、玩转进程 Node在选型时决定在V8引擎之上构建&#xff0c;也就意味着它的模型与浏览器类似。 本章关于进程的介绍和讨论将会解决如下两个问题&#xff1a; 单进程单线程并非完美&#xff0c;如今CPU基本均是多核的&#xff0c;真正的服务器&#xf…

MySQL 8 group by 报错 this is incompatible with sql_mode=only_full_group_by

文章目录 sql_mode配置ONLY_FULL_GROUP_BYSTRICT_TRANS_TABLESNO_ZERO_IN_DATENO_ZERO_DATEERROR_FOR_DIVISION_BY_ZERONO_AUTO_CREATE_USERNO_ENGINE_SUBSTITUTION 局部修改配置windows修改配置Linux修改配置 sql_mode配置 ONLY_FULL_GROUP_BY 用于控制是否允许对查询结果进…

springboot汽车租赁后台java出租客户管理jsp源代码mysql

本项目为前几天收费帮学妹做的一个项目&#xff0c;Java EE JSP项目&#xff0c;在工作环境中基本使用不到&#xff0c;但是很多学校把这个当作编程入门的项目来做&#xff0c;故分享出本项目供初学者参考。 一、项目描述 springboot汽车租赁后台 系统有1权限&#xff1a;管理…

mysql索引的数据结构(Innodb)

首选要注意,这里的数据结构是存储在硬盘上的数据结构,不是内存中的数据结构,要重点考虑io次数. 一.不适合的数据结构: 1.Hash:不适合进行范围查询和模糊匹配查询.(有些数据库索引会使用Hash,但是只能精准匹配) 2.红黑树:可以范围查询和模糊匹配,但是和硬盘io次数比较多. 二…