转自:http://dacoolbaby.iteye.com/blog/1772156

根据需求,写了一段方法。

用于识别以下的情况:

判断 字符串A  在用逗号分隔的字符串B中是否存在

如:

v_str_a = aa ;

v_str_b= aa,bb,dd,cc ;

如上,就返回Y,否则返回N。

添加了一些校验。

以后可以根据需求,按照指定的分隔符,提取字符串。

毕竟Oracle的字符串解析比较麻烦,能封装就封装。

 create or replace function func_str_inArray(p_target    varchar2,
p_str_array varchar2)
return varchar2 is v_flag varchar2(1);
v_comma_loc int;
v_cut_string varchar2(300);
v_rest_string varchar2(2000);
begin
------------------------
--p_target 不能包含","!!!注意!!
--info:这个函数用于识别目标字符串,是否在一串用“,”分开的字符串内
------------------------
v_flag := 'N';
v_comma_loc := instr(p_str_array, ','); --如果是对比字符串是空,则返回false
if nvl(p_str_array, '') = '' then
return 'N';
end if;
--如果没有逗号,直接比较
if length(p_str_array) > 0 and v_comma_loc = 0 then
if p_target = p_str_array then
return 'Y';
else
return 'N';
end if;
end if; v_rest_string := p_str_array; while v_comma_loc > 0 loop
v_cut_string := substr(v_rest_string, 0, v_comma_loc - 1);
v_rest_string := substr(v_rest_string,
v_comma_loc + 1,
length(v_rest_string) - 1); if p_target = v_cut_string then
v_flag := 'Y';
end if; v_comma_loc := instr(v_rest_string, ','); if v_comma_loc = 0 and length(v_rest_string) > 0 then
if p_target = v_rest_string then
v_flag := 'Y';
end if;
end if; end loop; return v_flag; end;

Oracle SQL判断字符串是否在目标字符串中的函数的更多相关文章

  1. Oracle sql判断一个字段是否全数字 或含有中文

    update (select length(t.name), t.* -- name,length(name) from g_enterprise_info t where nvl2(translat ...

  2. Oracle SQL 判断某表是否存在

    SQL> SELECT COUNT (*) as cnt FROM ALL_TABLES WHERE table_name = UPPER('your_table'); CNT -------- ...

  3. 获取目标字符串在字符串中第N次出现的位置

    /** * 获取目标字符串在字符串中第N次出现的位置 * @file name * @author xiehongwei * @date 2017-8-2 下午3:29:09 * @param sou ...

  4. Oracle sql连接

    inner-join                    left-outer-join                 right-outer-join                 full- ...

  5. Oracle sql 子字符串长度判断

    Oracle sql 子字符串长度判断 select t.* from d_table t ,) ,instr(t.col,; 字符串的前两位都是数字: select * from d_table t ...

  6. SQL判断字符串里不包含字母

    Oracle: 方法一:通过To_Number 函数异常来判断,因为这个函数在转换不成功的时候是报错,所以只能用存储过程包装起来. CREATE OR REPLACE FUNCTION Is_Numb ...

  7. sql判断以逗号分隔的字符串中是否包含某个字符串--------MYSQL中利用select查询某字段中包含以逗号分隔的字符串的记录方法

    sql判断以逗号分隔的字符串中是否包含某个字符串---------------https://blog.csdn.net/wttykj/article/details/78520933 MYSQL中利 ...

  8. SQL Server获取下一个编码字符串的实现方案分割和进位

        我在前一种解决方案SQL Server获取下一个编码字符实现和后一种解决方案SQL Server获取下一个编码字符实现继续重构与增强两篇博文中均提供了一种解决编码的方案,考虑良久对比以上两种方 ...

  9. oracle中一个字符串包含另一个字符串中的所有字符

    oracle中一个字符串包含另一个字符串中的所有字符 --解决监理报告中所勾选的标段信息,与该用户所管理的标段字符串不匹配的问题. select * from a where instr(a,b)&g ...

随机推荐

  1. SpringMVC的环境搭建

    MyBatis框架-->持久层框架-->Object[对象]Relation[关系型数据库]Mapping[在MyBatis的体现是哪个映射文件中国的<resultMap>标签 ...

  2. 机器学习:集成学习(Soft Voting Classifier)

    一.Hard Voting 与 Soft Voting 的对比 1)使用方式 voting = 'hard':表示最终决策方式为 Hard Voting Classifier: voting = 's ...

  3. Rails的静态资源管理(三)—— 开发环境的Asset Pipelin

    官方文档:http://guides.ruby-china.org/asset_pipeline.html http://guides.rubyonrails.org/asset_pipeline.h ...

  4. 将chrome浏览器的默认背景颜色修改为浅绿色,以减缓长时间看电脑的眼睛不舒服的问题

    修改chrome文件夹中的Custom.css, 此文件里面默认内容是空的. 在其中添加下面这段代码: 你也可以选择自己的喜欢的颜色, 前提是你知道你想要更改的颜色的十六进制颜色值, 例如:#CCEB ...

  5. 11-23网页基础--JavaScript基础知识

    第一课 JavaScript简介 一.定义:JavaScript是脚本语言,需要宿主文件,它的宿主文件是html文件. JavaScript 是一种轻量级的编程语言. JavaScript 是可插入 ...

  6. 支撑矢量机SVM

    1.线性SVM 首先,回顾一下SVM问题的定义,如下: 线性约束很烦,不方便优化,是否有一种方法可以将线性约束放到优化问题本身,这样就可以无拘无束的优化,而不用考虑线性约束了.其对应的拉格朗日对偶形式 ...

  7. DOM详习讲解

    http://www.cnblogs.com/wupeiqi/articles/5643298.html 

  8. java格式化数字、货币、金钱

    网上摘来的,以后可能会用到 java开发中经常会有数字.货币金钱等格式化需求,货币保留几位小数,货币前端需要加上货币符号等.可以用java.text.NumberFormat和java.text.De ...

  9. SpringBoot05 数据操作01 -> JPA的基本使用、基本使用02

    前提: 创建一个springboot项目 创建一个名为springboottest的MySQL数据库 1 jar包准备 jpa的jar包 mysql驱动的jar包 druid数据库连接池的jar包 l ...

  10. 设置 PyCharm 软件中 Terminal 窗口 中启动的 python 交互命令的版本

    设置 PyCharm 软件中 Terminal 窗口 中启动的 python 交互命令的版本 python2 和 python3 有很大的不同,使用python2 编写的程序,如果使用python3 ...