我们在实际工作中常常要使用去特殊字符的功能,特别是插入到数据库中的数据,我们为了保证数据的质量,往往需要对数据进行清洗,

我们在实际工作中常常要使用去特殊字符的功能,特别是插入到数据库中的数据,我们为了保证数据的质量,往往需要对数据进行清洗,就是去掉特殊字符,我们处理问题的思路是:判断字符串中的每个字符是不是中文,如果是中文,将他们按照顺序连接起来,如果不是,不要。

根据实际业务需求,共有2中解决方案:

方案一:

使用数据库自带函数length,lengthb。

中文下length返回的是字符个数,中文占1字符,lengthb返回的是字节个数,中文占2字节,根据中文的特性即可解决,但是实际情况往往不是特别理想,往往还存在着一些特殊字符,这些特殊字符和中文的字符数和字节数一致,这时我们就不能准确判断数据库中的中文字符了,为了解决这个问题,建议方案二。

方案二:

使用ASCII码来区分中文和其它字符,中文的ASCII码值的范围是45217~63486,根据这个来实现,,我们就需要使用Oracle中的函数ASCII,用它来返回ASCII值。

这种方式可以完美区分中文字符和其它字符。

create or replace function getCustText(custName varchar2) return varchar2 is

Result varchar2(100);

tmp_custName varchar2(100);

count_str number;

i number:=1;

str_ascii number;

current_char varchar2(10);

begin

select length(custName) into count_str from dual;

while i current_char:=substr(custName,i,1);

select ASCII(current_char) into str_ascii from dual;

if str_ascii>45216 then

tmp_custName:=tmp_custName||current_char;

end if;

i:=i+1;

end loop;

Result:=tmp_custName;

return(Result);

end getCustText;

以上是Oracle中的实现方式,通过该方式可以快速,准确的识别中文字符。

在CentOS 6.4下安装Oracle 11gR2(x64)

Oracle 11gR2 在VMWare虚拟机中安装步骤

Debian 下 安装 Oracle 11g XE R2

Oracle Linux 6.5安装Oracle 11.2.0.4 x64

本文永久更新链接地址:

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

oracle字符串只截取中文,Oracle提取字符串中“汉字”串的解决办法相关推荐

  1. oracle ipc message,【案例】Oracle RAC IPC send timeout error导致RAC的节点挂起解决办法

    天萃荷净 Oracle研究中心案例分析:运维DBA反映Oracle RAC环境数据库节点挂起,分享日志发现是由于IPC send timeout error导致RAC的节点挂起. 本站文章除注明转载外 ...

  2. Missing artifact com.oracle:ojdbc6:jar:11.2.0.3 Maven中不能引入ojdbc解决方法,错误

    Missing artifact com.oracle:ojdbc6:jar:11.2.0.3 Maven中不能引入ojdbc解决方法,错误 参考文章: (1)Missing artifact com ...

  3. oracle数据库进程pmon,【案例】Oracle进程异常 pmon和LISTENER进程负载均比较高的解决办法...

    天萃荷净 运维DBA反映监控到Oracle数据库的pmon和LISTENER进程负载均比较高,查看alert日志文件发现动态注册监听太多,分析原因为REMOTE_LISTENER设置不当导致 1.Or ...

  4. Oracle:ORA-01031错误及安装过程忘记进行口令设置的解决办法

    一.ORA-01031: insufficient privileges 问题:使用CONN / AS SYSDBA(注意空格)命令登录win10系统的Oracle11g数据库,失败,显示没有权限. ...

  5. php数组使用json_encode函数中文被编码成null的原因和解决办法

    大写的囧,提客户处理问题,前端的APP一直在叽叽咂咂,说收到的值是null,弄了半天原来是这个问题,记录下吧 json格式在开发中用的十分广泛.在php中json_encode函数可以直接将数组转成 ...

  6. Mac 中文输入法失效(不显示选词框)解决办法

    Mac 中文输入法失效(不显示选词框)解决办法 问题描述: 1.可以正常切换中英文输入法: 2.切换到中文输入法(搜狗或则简体拼音),只显示拼音且带下划线,但是不显示选词狂: 解决办法: 方法1: 重 ...

  7. 正则表达式 - 去掉乱码字符/提取字符串中的中文字符/提取字符串中的大小写字母 - Python代码

    目录 1.乱码符号种类较少,用replace() 2.乱码字符种类较多,用re.sub() 3.提取字符串中的中文字符 4.提取字符串中的中文字符和数字 5.提取其他 数据清洗的时候一大烦恼就是数据中 ...

  8. php怎么截取中文第一个字符串,php中怎么截取中文字符串

    php中如何截取中文字符串? 众所周知php原生函数substr是不支持截取中文字符串的.下面的代码提供了多种截取php中文字符串的方法. 1. 截取GB2312中文字符串 0xa0) { $tmps ...

  9. Java通过正则剔除乱码_正则表达式 - 去掉乱码字符/提取字符串中的中文字符/提取字符串中的大小写字母 - Python代码...

    目录 1.乱码符号种类较少,用replace() 2.乱码字符种类较多,用re.sub() 3.提取字符串中的中文字符 4.提取字符串中的中文字符和数字 5.提取其他 数据清洗的时候一大烦恼就是数据中 ...

最新文章

  1. c1083 “tensorflow/python/framework/c pp_shape_inference.pb.h”
  2. boost::mutex::scoped_lock
  3. .NET或.NET Core Web APi基于tus协议实现断点续传
  4. Mathematics(jzoj 1747)
  5. mysql修改文件名_SQL语句实现附加数据库,可以改数据库物理文件名
  6. linux sh expr冒号,linux expr命令参数及用法详解
  7. python 使用ElementTree解析xml
  8. ERROR: This version of Android Studio cannot open this project, please retry with Android Studio 3.
  9. pb使用http方式上传下载文件
  10. 如果报华为网络工程师中级培训班一般学费多少?
  11. 儿童讲堂 - 学科分类
  12. SQLServer2019 如何导出单张表数据
  13. char与 wchar 之间的转换
  14. 开机上报树梅派2的IP地址到邮箱
  15. VB出现“找不到DAO350.DLL”错误
  16. 待业在家,晚上10点接到HR面试电话,我拒绝了
  17. android 6无法连电脑,vivo手机无法连接电脑怎么办?vivo手机无法连接电脑的解决方法...
  18. 获取web页面的宽度和高度
  19. PC使用--记录电脑硬件使用问题
  20. 光学三维测量技术及应用

热门文章

  1. Linux 学习笔记_10_Shell编程_2_Shell编程语法(三)
  2. 跨浏览器Ajax调用封装
  3. FreeBSD portupgrade升级你的FreeBSD软件[zt]
  4. new ext.toolbar控制按钮间距_按钮规范系列 - 「按钮尺寸」的设计详解
  5. 【温故知新】HTML学习笔记(上)
  6. 我该拿什么拯救你,我的CSDN
  7. SAP直接踢人下线 SM04
  8. abap submit 的使用方法
  9. SAP快速找到定制配置
  10. see的口语高频用法