oracle 函数 if 判断,oracle 判断中文函数

create or replace function func_chinese

(

p_str     in varchar2,     -- 输入的字符串

p_code    in varchar2,     -- dump(字符串)

p_chinese in pls_integer   -- 1, 提取汉字, 非1, 提取非汉字

) return varchar2

as

v_code         varchar2(32767) := substr(p_code,instr(p_code,‘:‘)+2);

v_chinese      varchar2(32767) := ‘‘;

v_non_chinese  varchar2(32767) := ‘‘;

v_comma        pls_integer;

v_code_h       pls_integer;

v_code_l       pls_integer;

begin

if p_str is not null then

for i in 1..length(p_str) loop

if lengthb(substr(p_str,i,1))=2 then

v_comma  := instr(v_code,‘,‘);

v_code_h := to_number(substr(v_code,1,v_comma-1));

v_code_l := to_number(substr(v_code,v_comma+1,abs(instr(v_code,‘,‘,1,2)-v_comma-1)));

if (v_code_h>=176 and v_code_h<=247 and v_code_l>=161 and v_code_l<=254) or

(v_code_h>=129 and v_code_h<=160 and v_code_l>=64  and v_code_l<=254  and nvl(v_code_l,127)!=127) or

(v_code_h>=170 and v_code_h<=254 and v_code_l>=64  and v_code_l<=160  and nvl(v_code_l,127)!=127) then

v_chinese := v_chinese||substr(p_str,i,1);

else

v_non_chinese := v_non_chinese||substr(p_str,i,1);

end if;

v_code := ltrim(v_code,‘1234567890‘);

v_code := ltrim(v_code,‘,‘);

else

v_non_chinese := v_non_chinese||substr(p_str,i,1);

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;

else

return ‘‘;

end if;

end;

/

SQL> select * from t;

NAME

----------------------

新年快乐X

狿X

199

春天会来的

-----------------------

实验1: 提取汉字

-----------------------

select name,func_chinese(name,dump(name),1) result from t;

NAME                           RESULT

------------------------------ -----------

新年快乐X                      新年快乐

狿X                            狿

狿                             狿

199

春天会来的                     春天会来的

-----------------------

实验2: 提取非汉字

-----------------------

select name,func_chinese(name,dump(name),0) result from t;

NAME                           RESULT

------------------------------ -------

新年快乐X                      X

狿X                            X

199                            199

春天会来的

-----------------------

原文:http://www.cnblogs.com/tippoint/p/3844738.html

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

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

相关文章

Fiddler进行模拟Post提交json数据,总为null解决方式

Request Headers: User-Agent: FiddlerHost: localhost:3248Content-Type: application/json; charsetutf-8 Content-Length: 63 要加上Content-Type: application/json; charsetutf-8&#xff0c;要不是JSON没效 Request Body {"UserID":4,"UserName":&q…

基本排序算法一

一 选择排序 原理&#xff1a;选择排序很简单&#xff0c;他的步骤如下&#xff1a; 从左至右遍历&#xff0c;找到最小(大)的元素&#xff0c;然后与第一个元素交换。从剩余未排序元素中继续寻找最小&#xff08;大&#xff09;元素&#xff0c;然后与第二个元素进行交换。以此…

老大爷的手法一看就不一般!

1 超市门口的双枪老大爷▼2 小朋友&#xff1a;谢邀&#xff0c;人在机场&#xff0c;刚下飞船▼3 向你保证这真的是一副刺绣作品▼4 外国最新挑战【我打我自己接力】▼5 疫情期间在家隔离的健身人士们快要被逼疯了▼6 给大家表演一个大变活人吧▼7 家有神兽的家长最近一…

Gamebryo实例学习之二BackgroundLoad

2019独角兽企业重金招聘Python工程师标准>>> 一、简介 后台加载允许应用程序以一个优先级低于主线程的后台线程来加载NIF文件。这个程序演示了如何使用BackgroundLoad后台加载。 二、解析 程序继承了实例基类NiSample。 CallbackStream继…

oracle创建public链接,如何在oracle直接使用地址来创建database link

在2个oracle之间手工同步数据时&#xff0c;DBlink是最快捷的手段之一吧。建dblink的时候需要知道待读取数据库的ip地址&#xff0c;ssid以及数据库用户名和密码。前提&#xff1a;创建dblink的用户有对应的数据库权限create public database link 或者create database link可以…

C++复习(三)

C++函数重载 实际开发中,有时我们要实现的是同一类的功能,只是有些细节不同。例如希望从3个数中找出其中的最大者,而每次求最大数时数据的类型不同,可能是3个整数、3个双精度数或3个长整数。在C语言中,程序员往往需要分别设计出3个不同名的函数,其函数原型与下面类似: i…

WPF 实现圣诞树

WPF开发者QQ群&#xff1a; 340500857 | 微信群 -> 进入公众号主页 加入组织由于微信群人数太多入群请添加小编微信号&#xff08;yanjinhuawechat&#xff09;或&#xff08;W_Feng_aiQ&#xff09;邀请入群&#xff08;需备注WPF开发者&#xff09;PS&#xff1a;有更好的…

sdut2784cf 126b Good Luck!(next数组)

链接 next数组的巧妙应用 学弟出给学弟的学弟的题。。 求最长的 是前缀也是后缀同时也是中缀的串 next的数组求的就是最长的前后缀 但是却不能求得中缀 所以这里 就把尾部去掉之后再求 这样就可以保证是中缀了 先把所有既是前缀也是后缀的长度的求出来标记 然后再去掉尾部 求…

Android文件Apk下载变ZIP压缩包解决方案

[root conf]# pwd /alidata/server/nginx/conf [root conf]# vi mime.typesapplication/vnd.android.package-archive apk; #增加加这一条位置大概&#xff1a; application/x-redhat-package-manager rpm;application/x-sea sea;application/x-shockwave…

聊一聊基于Nacos的metadata完成服务间的AB测试

背景 在很多时候&#xff0c;产品同学或其他 boss 会有一些想法&#xff0c;或好或坏&#xff0c;都会想放到线上环境去验证&#xff0c;看看能不能带来更好的效果。这其实就是一个提出假设和验证假设的过程&#xff0c;而 AB 测试&#xff0c;是验证假设的好方法。对于服务之间…

豆瓣评分9分+,每一部看完不禁感慨!这里是神州大地!

全世界只有3.14 % 的人关注了爆炸吧知识纪录片的一大重要意义&#xff0c;就在于它能将我们的视野和脚步&#xff0c;引向我们无法企及的地方和领域&#xff0c;又能让那些我们曾经到过的地方、经历过的人事&#xff0c;变得更有深意。今天&#xff0c;就给大家分享7部顶级纪录…

旅游社交网站 游范儿

为什么80%的码农都做不了架构师&#xff1f;>>> 应用名称&#xff1a;旅游社交网站 游范儿 应用URL地址&#xff1a;http://tumi.cloudfoundry.com/ 应用说明及使用场景&#xff1a; 用于爱好旅游的人士&#xff0c;发游记&#xff0c;以及所见所闻&#xff0c;…

C++复习(四)

C++引用(Reference) 引用(Reference)是C++相对于C语言的又一个扩充。引用类似于指针,只是在声明的时候用 & 取代了 *。引用可以看做是被引用对象的一个别名,在声明引用时,必须同时对其进行初始化。引用的声明方法如下: 类型标识符 &引用名 = 被引用对象 [例1]C…

jquery获取文档高度和窗口高度的例子

jquery获取文档高度和窗口高度&#xff0c;$(document).height()、$(window).height() $(document).height()&#xff1a;整个网页的文档高度 $(window).height()&#xff1a;浏览器可视窗口的高度 $(window).scrollTop()&#xff1a;浏览器可视窗口顶端距离网页顶端的高度&…

nginx源码学习Unix - Unix域协议

说到什么是域协议就会出现这么个解释&#xff1a; UNIX域协议并不是一个实际的协议族&#xff0c;而是在单个主机上执行客户/服务器通信的一种方法&#xff0c;所用API与在不同主机上执行客户/服务器通信所使用的API相同。UNIX域协议可以视为IPC方法之一。 我们白话解释下Unix域…

oracle12c考试内容,12c ocp考试内容

oca1z0-047(Oracle Database SQL Expert 1Z0-047) 60个题&#xff0c;90分钟&#xff0c;66%过关。/1z0-051(Oracle Database 11g: SQL Fundamentals I 1Z0-051) 64个题&#xff0c;120分钟&#xff0c;60%过关。/1z0-061(Oracle Database 12c: SQL Fundamentals 1Z0-061) 75个…

微软开源的Web测试和自动化神器 Playwright

Playwright 是微软开源的一个用于 Web 测试和自动化的框架, 提供了可靠的端到端测试, 功能非常强大, 可以在测试, 爬虫&#xff0c;自动化场景中使用。跨浏览器Playwright 支持所有现代的渲染引擎&#xff0c;包括 Chromium、WebKit 和 Firefox。跨平台在 Windows, Linux 和 ma…

史上最厉害的“1+2”!这个270年前出现的大难题,已经60多年没有出现好消息了..........

全世界只有3.14 % 的人关注了爆炸吧知识费马费马欧拉欧拉数学是科学的皇后数论是数学中的皇冠这顶皇冠每一次被举起它的光芒都在照亮数学的前方从112到“12”人类一次次逼近“哥德巴赫猜想”的真相从一张白纸到上面写满n>2的证明“费马大定理”凝聚成了一部数学史从2、3、5、…

C++复习五

C++类的成员变量和成员函数 类是一种数据类型,它类似于普通的数据类型,但是又有别于普通的数据类型。类这种数据类型是一个包含成员变量和成员函数的一个集合。 类的成员变量和普通变量一样,也有数据类型和名称,占用固定长度的内存空间。但是,在定义类的时候不能对成员变…

PowerCenter基础心得

心得学习 [转自&#xff23;&#xff33;&#xff24;&#xff2e;&#xff1a;http://blog.csdn.net/hualin_xie/article/details/4885800] 通过将近一周的学习时间&#xff0c;我大致掌握了PowerCenter 的基本架构和设计开发过程中的一些方法和技巧。PowcerCenter 也是属于典…