oracle中过滤中文字符或者汉字的函数
CREATE OR REPLACE FUNCTION GET_CHINESE(P_NAME IN VARCHAR2) RETURN VARCHAR2 IS
V_CODE VARCHAR2(30000) := '';
V_CHINESE VARCHAR2(4000) := '';
V_NON_CHINESE VARCHAR2(4000) := '';
V_COMMA PLS_INTEGER;
V_CODE_Q PLS_INTEGER;
V_CODE_W PLS_INTEGER;
BEGIN
IF P_NAME IS NOT NULL THEN
SELECT REPLACE(SUBSTRB(DUMP(P_NAME, 1010), INSTRB(DUMP(P_NAME, 1010), 'ZHS16GBK:')), 'ZHS16GBK: ', '') INTO V_CODE FROM DUAL WHERE ROWNUM = 1;
FOR I IN 1 .. LENGTH(P_NAME) LOOP
IF LENGTHB(SUBSTR(P_NAME, I, 1)) = 2 THEN
V_COMMA := INSTRB(V_CODE, ',');
V_CODE_Q := TO_NUMBER(SUBSTRB(V_CODE, 1, V_COMMA - 1));
V_CODE_W := TO_NUMBER(SUBSTRB(V_CODE, V_COMMA + 1, ABS(INSTRB(V_CODE, ',', 1, 2) - V_COMMA - 1)));
IF V_CODE_Q >= 176 AND V_CODE_Q <= 247 AND V_CODE_W >= 161 AND V_CODE_W <= 254 THEN
V_CHINESE := V_CHINESE || SUBSTR(P_NAME, I, 1);
ELSE
V_NON_CHINESE := V_NON_CHINESE || SUBSTR(P_NAME, I, 1);
END IF;
V_CODE := LTRIM(V_CODE, '1234567890');
V_CODE := LTRIM(V_CODE, ',');
END IF;
V_CODE := LTRIM(V_CODE, '1234567890');
V_CODE := LTRIM(V_CODE, ',');
END LOOP;
/*IF P_CHINESE = '1' THEN
RETURN V_CHINESE;
ELSE
RETURN V_NON_CHINESE;
END IF;*/
IF LENGTH(V_CHINESE) > 0 THEN
RETURN V_CHINESE;
ELSIF LENGTH(V_NON_CHINESE) > 0 THEN
RETURN V_NON_CHINESE;
ELSE
RETURN '';
END IF;
ELSE
RETURN '';
END IF;
END GET_CHINESE;
使用方法:SELECT /*+ parallel(a,10)*/ A.*, ROWID FROM ABC_TABLE A where length(GET_CHINESE(logic_phone))>0
oracle中过滤中文字符或者汉字的函数的更多相关文章
- 如何利用java把文件中的Unicode字符转换为汉字
有些文件中存在Unicode字符和非Unicode字符,如何利用java快速的把文件中的Unicode字符转换为汉字而不影响文件中的其他字符呢, 我们知道虽然java 在控制台会把Unicode字符直 ...
- java面试题:如果一串字符如"aaaabbc中国1512"要分别统计英文字符的数量,中文字符的数量,和数字字符的数量,假设字符中没有中文字符、英文字符、数字字符之外的其他特殊字符。
package com.swift; public class TotalNumber_String { public static void main(String[] args) { /* * 如 ...
- Tomcat 中get请求中含有中文字符时乱码的处理
Tomcat 中get请求中含有中文字符时乱码的处理
- WP8_UTF8 to GB2312转码 (url网址中带中文字符的处理)
直接使用例如:http://www.abc.php?name=中文符 ,客户端调用,在服务端修改后,会出现乱码, 而windows phone 又不能直接支持gb2312, 经过大量分析和验证,发现 ...
- python 连接数据库-设置oracle ,mysql 中文字符问题
import cx_Oracle import MySQLdb def conn_oracle(): cnn = cx_Oracle.connect('用户名','密码','ip:端口号/数据库') ...
- url为什么要编码及php中的中文字符urlencode基本原理
首先了解以下中文字符在使用urlencode的时候运用的基本原理: urlencode()函数原理就是首先把中文字符转换为十六进制,然后在每个字符前面加一个标识符%. 此字符串中除了 -_. 之外的所 ...
- 使用Java判断字符串中的中文字符数量
Java判断一个字符串str中中文的个数,经过总结,有以下几种方法(全部经过验证),可根据其原理判断在何种情况下使用哪个方法: 1. char[] c = str.toCharArray(); for ...
- java中Cookie中文字符乱码问题
如果Cookie中的Value 中有中文字符出现,在加入Cookie的时候,会出现下面的错误: java.lang.IllegalArgumentException: Control characte ...
- 解决osg路径与文件名中的中文字符问题
转至:http://blog.csdn.net/zhuqinglu/article/details/2064013 在打开或者保存一个osg模型的时候,经常遇到中文路径或者中文文件名的问题,此时会提示 ...
随机推荐
- Python爬取中国天气网
Python爬取中国天气网 基于requests库制作的爬虫. 使用方法:打开终端输入 “python3 weather.py 北京(或你所在的城市)" 程序正常运行需要在同文件夹下加入一个 ...
- Remove Duplicate Letters -- LeetCode
Given a string which contains only lowercase letters, remove duplicate letters so that every letter ...
- kong后台接口
在nginx-kong.lua中,require('lapis').serve('kong.api'),先require文件/usr/local/share/lua/5.1/lapis/init.lu ...
- iOS 自定义字体设置
有时候客户都要求使用方正兰亭刊黑字体,可是iOS没有自带这个字体,肿么办 ,只能自己自定义字体了,下面是自定义字体的几个重要步骤: 1.下载字体资源文件(.ttf或.otf格式的文件) 比如说你要使用 ...
- 把我的漫画浏览器后台程序迁移到GAE上了
这两天看了一下Python和GAE相关资料,作为练手,把我以前写的Windows 8下看漫画的程序的后台解析算法迁移到了GAE上了. 之前由于没有后台服务器,很多东西在本地实现起来不是很方便,现在拿G ...
- C++ development cross platforms
1. target platforms: linux suse, windows server, both use vmware virtual machine on lab server. 2. c ...
- 在ArcGIS Desktop中进行三参数或七参数精确投影转换
转自 在ArcGIS Desktop中进行三参数或七参数精确投影转换 ArcGIS中定义的投影转换方法,在对数据的空间信息要求较高的工程中往往不能适用,有比较明显的偏差.在项目的前期数据准备工 ...
- git push后自动部署
前提,服务器已经装好ssh,本地也已经将ssh 公钥传到服务器对应位置 先用 pbcopy < ~/.ssh/PRIVATE_KEY.pub 将公钥复制到剪贴板:通过 ssh USER@SERV ...
- oracle deadlock
Basic operation su - oracle sqlplus / as sysdba show parameter background show parameter user_dump_d ...
- HDU4911:Inversion
Problem Description bobo has a sequence a1,a2,-,an. He is allowed to swap two adjacent numbers for n ...