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

oracle 函数 if 判断,oracle 判断中文函数相关推荐

  1. iphone计算机能算度分秒吗,‎App Store 上的“iFxCalc:最人性化的函数计算器,支持自定义中文函数”...

    让iFxCalc称为您的标配计算器,中国区永久1元享受完整版,不再收取任何内购费用! iFxCal是一款非常精巧的计算器,能极大提高计算的效率.它采用表达式的输入方式,并且可以直接输入度分秒和进行度分 ...

  2. oracle中文转换为unicode,oracle 用函数unistr将Oracle数据库中的Unicode转换为中文

    用函数unistr将Oracle数据库中的Unicode转换为中文 1:保留连续的中文 select regexp_substr('Hello,大家好!greeting', '[' || unistr ...

  3. 【函数】Oracle函数系列(2)--数学函数及日期函数

    [函数]Oracle函数系列(2)--数学函数及日期函数 [函数]Oracle函数系列(2)--数学函数及日期函数 1  BLOG文档结构图 2  前言部分 2.1  导读和注意事项 各位技术爱好者, ...

  4. Oracle数据库(一):安装函数查询条件查询

    文章目录 1.课程总介绍 Oracle由来&埃里森的身世 为什么学习Oracle 2.Oracle安装与配置 3.正式学习部分 Oracle体系结构 Oracle和MYSQL的差别 SQL的简 ...

  5. oracle自定义函数获取省份,oracle 自定义函数 方法 基本例子

    核心提示:函数用于返回特定数据.执行时得找一个变量接收函数的返回值; 语法如下: create or replace function function_name ( argu1 [mode1] da ...

  6. oracle取第一位,Oracle中的substr()函数和INSTR()函数

    1)substr函数格式   (俗称:字符截取函数) 格式1: substr(string string,int a,int b); 格式2:substr(string string,int a) ; ...

  7. oracle中常用关键字,oracle常用函数及关键字笔记

    --函数及关键字-- 1.trim,ltrim,rtrim 去除字符,无指定默认去除空格 SELECT TRIM('a' FROM 'aafhfhaaaaaaaa'), LTRIM('aafhfhaa ...

  8. mysql的decode函数_Mysql实现oracle decode()函数

    今天业务上有个需求,mysql按组group_by获取数据,但过滤掉组中某字段包含某值的那些组(如status=1) 数据描述需求 字段  id name      status 1 aaa 0 2 ...

  9. oracle函数isnull,SQL中的ISNULL函数使用介绍

    ISNULL 使用指定的替换值替换 NULL. 语法 ISNULL ( check_expression , replacement_value ) 参数 check_expression 将被检查是 ...

  10. Oracle中模拟SQL中的isnull函数

    程序从MS SQL移植到ORACLE,面临大面积的SQL语句修改,其中用的最多的莫非isnull,虽然oracle中有nvl ,nullif, is null等函数,但却没有isnull.自己写一个吧 ...

最新文章

  1. Google的“机器人情结”:两次合计36亿美元的人工智能收购
  2. SQL多列查询最大值
  3. 初中节点法分析电路_有关初中物理电路分析题的一些小技巧
  4. 文本过滤--grep 1
  5. phpmyadmin安全预防
  6. ubuntu系统重启后桌面分辨率减小的原因及解决方法
  7. 基于matlab的暴雨强度公式参数推求,小样本流域降雨强度公式和设计降雨分布的推求方法...
  8. WORD 表格中图片显示不出来?
  9. 数据宝贝儿放云上,你放心么?
  10. Java Attach机制实现原理
  11. C#与PLC通信开发之三菱FX系列PLC
  12. Maven基础-认识Maven
  13. mtk处理器和骁龙对比_3500元以内手机的绝杀?首款MTK 天玑1000处理器手机IQOO Z发布...
  14. WIN10 LTSC 2019 安装新版Mircosoft Edge浏览器,解决无法安装问题
  15. 从苏宁电器到卡巴斯基(第二部)第30篇:我当高校教师的这几年 VI
  16. SAP MM 供应商无英文名称,ME21N里却带出了英文名字?
  17. 该内存不能为“read”的几个解决方案
  18. [读书笔记]魔鬼约会学
  19. python assert二次封装
  20. 中国全国地区MYSQL 地区SQL数据表(省,市,区,县)

热门文章

  1. python3---情感分析(基于词典中文)
  2. PDF转jpg for MAC
  3. Ucient、Netdraw的安装与使用-----分析人物间的关系和重要性
  4. 探索图片填充模式二--CenterCrop模式的实现
  5. AWVS12搭建-Ubuntu
  6. de4dot不能反编译的混淆工具 ILProtector
  7. oracle练习(mldn视频)二
  8. GNSS精密星历读取(matlab)
  9. java excel 单元格换行_单元格里的文字换行_ExcelHome - 全球极具影响力的Excel门户,Office视频教程培训中心...
  10. foobar2000 Mac版终于来了