一、问题说明

  在处理数据的时候,需要判断某个字段字符串中是否有中文,若有则取出中文。

二、解决办法

  首先如何判断某个字段字符串中是否有中文。这里介绍三种方法:

    1、采用ASCIISTR函数

      

     说明:ASCIISTR函数用于返回字符的ASCII形式的字符串;非ASCII的字符被转化为\xxxx的形式。换句话说:如果字符中包含中文,则必定会有\xxxx的字符。

     所以,我们直接利用ASCIISTR函数匹配'\'即可判断。

    2、采用length和lengthb的原理

      

     说明:中文下length返回的是字符个数,中文占1字符,lengthb返回的是字节个数,中文占2字节,根据中文的特性即可解决。

    3、使用CONVERT函数判别

      

      说明:CONVERT(要转换的字符串,目标字符集,原字符集),CONVERT函数用于转换字符串的字符集;所以我们可以利用中文的字符集是utf-8来判断。

  上面介绍了如何判断某个字段字符串中是否有中文,在成功判断字段中是否有中文之后;那么该如何取出字段中的中文呢?

  这里介绍一种快速准确的办法:

  

  函数创建成功后,直接传jldw调用就可获取该字符的中文了。

源码如下:

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; --当前等待判断字符的ascii码
current_char varchar2(10); --当前等待判断的字符
begin
select length(custName) into count_str from dual; --取出待处理字符串的长度
while i<count_str loop ---根据待处理字符串长度(counts)?,逐个字符判断处理
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;

参考资料:

  http://www.cnblogs.com/kerrycode/p/4233710.html

  

Oracle判断字段中是否包含中文(若有,取出该中文的方法)的更多相关文章

  1. [C#]判断字符串中是否包含中文

    关键代码: /// <summary> /// 判断字符串中是否包含中文 /// </summary> /// <param name="str"&g ...

  2. java判断字符串中是否包含中文 过滤中文

    package com.test; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Test ...

  3. java 判断字符串中是否包含中文并过滤掉中文

      java判断字符串中是否包含中文并过滤掉中文 CreateTime--2017年9月6日08:48:59 Author:Marydon 1.判断字符串中是否包含中文方法封装 /** * 判断字符串 ...

  4. PHP判断字符串中是否包含指定字符串,支持中文哦

    RT,随手写的 /** * 判断字符串中是否包含指定字符串 * @var source 源字符串 * @var target 要判断的是否包含的字符串 * @return bool */ functi ...

  5. SQL 判断字段中指定字符出现的次数

    原文地址:SQL 判断字段中指定字符出现的次数 原理:将指定字符转换为空,原长度减去转换后的长度就是指定字符的次数. 在做数据处理时遇到一个SQL操作的问题就是有一列关键词字段,字段中包含各种乱七八糟 ...

  6. php字符串查找函数 php查找字符串中出现的次数函数substr_count,判断字符串中是否包含另一个字符串函数strpos

    php字符串查找函数 php查找字符串中出现的次数函数substr_count,判断字符串中是否包含另一个字符串函数strpossubstr_count($haystack, $needle [,$o ...

  7. Jquery判断数组中是否包含某个元素$.inArray()的用法

    判断数组里面是否包含某个元素可以使用 $.inArray("元素(字符串)",数组名称) 进行判断 ,当存在该元素(字符串)时,返回该元素在数组的下标,不存在时返回 -1 示例代码 ...

  8. 定义一个Collection接口类型的变量,引用一个Set集合的实现类,实现添加单个元素, 添加另一个集合,删除元素,判断集合中是否包含一个元素, 判断是否为空,清除集合, 返回集合里元素的个数等常用操作。

    package com.lanxi.demo2; import java.util.HashSet; import java.util.Iterator; import java.util.Set; ...

  9. 判断字符串中是否包含Emoji表情代码

    判断字符串中是否包含Emoji表情代码: + (BOOL)stringContainsEmoji:(NSString *)string { __block BOOL returnValue = NO; ...

随机推荐

  1. 763. Hex Conversion [LintCode naive]

    Description Given a decimal number n and an integer k, Convert decimal number n to base-k. 1.0<=n ...

  2. Tokio,Rust异步编程实践之路

    缘起 在许多编程语言里,我们都非常乐于去研究在这个语言中所使用的异步网络编程的框架,比如说Python的 Gevent.asyncio,Nginx 和 OpenResty,Go 等,今年年初我开始接触 ...

  3. 【BZOJ3197】[SDOI2013]刺客信条

    [BZOJ3197][SDOI2013]刺客信条 题面 bzoj 洛谷 题解 关于树的同构,有一个非常好的性质: 把树的重心抠出来,那么会出现两种情况: 1.有一个重心,那么我们直接把这个重心作为树的 ...

  4. ELKStack入门篇(一)之ELK部署和使用

    一.ELKStack简介 1.ELK介绍 中文指南:https://www.gitbook.com/book/chenryn/elk-stack-guide-cn/details ELK Stack包 ...

  5. T-SQL语句基础

    连接服务器 - 去哪个仓库找目标数据库 - 找仓库中的目标区域查找目标表 - 找货柜找数据(以行为基础单位) - 在货柜上找到目标的物品 基础T-Sql语句1.SQL语句的注释 2.创建数据库crea ...

  6. Spring学习(十二)-----Spring @PostConstruct和@PreDestroy实例

    实现 初始化方法和销毁方法3种方式: 实现标识接口 InitializingBean,DisposableBean(不推荐使用,耦合性太高) 设置bean属性 Init-method destroy- ...

  7. 高可用Kubernetes集群-12. 部署kubernetes-ingress

    参考文档: Github:https://github.com/kubernetes/ingress-nginx Kubernetes ingress:https://kubernetes.io/do ...

  8. ICPC 沈阳 Problem C

    题意 求n的全排列中将前k个数排序后最长公共子序列>=n-1的个数 思考 我们先把最后可能产生的结果找出来,再找有多少种排列能构成这些结果 设排列为s S like 1,2,3,...,n , ...

  9. Material Safety Data Sheet,MSDS - 化学品安全说明书

    化学品安全说明书(Material Safety Data Sheet)MSDS,国际上称作化学品安全信息卡,是化学品生产商和经销商按法律要求必须提供的化学品理化特性(如PH值,闪点,易燃度,反应活性 ...

  10. loadrunner socket协议问题归纳(0)

    一.概述         Loadrunner拥有极为丰富的工具箱,供予我们制造出各种奇妙魔法的能力.其中就有此次要讨论的socket套接字操作.     二.socket概述         soc ...