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

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

用于识别以下的情况:

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

如:

v_str_a = aa ;

v_str_b= aa,bb,dd,cc ;

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

添加了一些校验。

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

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

  1. create or replace function func_str_inArray(p_target varchar2,
  2. p_str_array varchar2)
  3. return varchar2 is
  4.  
  5. v_flag varchar2(1);
  6. v_comma_loc int;
  7. v_cut_string varchar2(300);
  8. v_rest_string varchar2(2000);
  9. begin
  10. ------------------------
  11. --p_target 不能包含","!!!注意!!
  12. --info:这个函数用于识别目标字符串,是否在一串用“,”分开的字符串内
  13. ------------------------
  14. v_flag := 'N';
  15. v_comma_loc := instr(p_str_array, ',');
  16.  
  17. --如果是对比字符串是空,则返回false
  18. if nvl(p_str_array, '') = '' then
  19. return 'N';
  20. end if;
  21. --如果没有逗号,直接比较
  22. if length(p_str_array) > 0 and v_comma_loc = 0 then
  23. if p_target = p_str_array then
  24. return 'Y';
  25. else
  26. return 'N';
  27. end if;
  28. end if;
  29.  
  30. v_rest_string := p_str_array;
  31.  
  32. while v_comma_loc > 0 loop
  33. v_cut_string := substr(v_rest_string, 0, v_comma_loc - 1);
  34. v_rest_string := substr(v_rest_string,
  35. v_comma_loc + 1,
  36. length(v_rest_string) - 1);
  37.  
  38. if p_target = v_cut_string then
  39. v_flag := 'Y';
  40. end if;
  41.  
  42. v_comma_loc := instr(v_rest_string, ',');
  43.  
  44. if v_comma_loc = 0 and length(v_rest_string) > 0 then
  45. if p_target = v_rest_string then
  46. v_flag := 'Y';
  47. end if;
  48. end if;
  49.  
  50. end loop;
  51.  
  52. return v_flag;
  53.  
  54. 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. TX2上安装spi和uart驱动

    替换/boot目录下的Image文件 重新烧写dtb文件.烧写方式参考. 文件下载

  2. canvas绘制简单图形

    canvas绘图篇: canvas绘制矩形: <!DOCTYPE html> <html> <head lang="en"> <meta ...

  3. RegisterUserFunc为测试对象添加新方法或重写已有方法

    QTP中为了提高扩展性,提供了一个为测试对象添加一个新的自定义方法,或者重写测试对象已有的方法的函数RegisterUserFunc,在此给大家分享一下. RegisterUserFunc:为测试对象 ...

  4. #调整随机森林的参数(调整n_estimators随机森林中树的数量默认10个树,精度递增显著,但并不是越多越好),加上verbose=True,显示进程使用信息

    #调整随机森林的参数(调整n_estimators随机森林中树的数量默认10个树,精度递增显著) from sklearn import datasets X, y = datasets.make_c ...

  5. 从文件中读取yuv和h264数据

    1.从文件中读取h264数据 参考ffmpeg avc.c写的从文件中一帧帧读取h.264数据的demo #include <stdio.h> #include <stdlib.h& ...

  6. JavaScript Array.map

    Array.prototype.map() History Edit This article is in need of a technical review. Table of Contents ...

  7. URL网址参数解析类

    /** * Created by myc on 2015/12/9. */ import android.text.TextUtils; import java.util.HashMap; impor ...

  8. SNNU女装T台走秀(状压dp)

    呜啦啦啦啦啦啦~~!!SNNU首届女装T走秀大赛开始了! 本次比赛共有N名队员希望参加比赛:ddjing希望这次比赛尽可能的吸睛,因此他决定对N名队员进行一次海选: 多亏ddjing有一双发现美的眼睛 ...

  9. centos系统查看本机IP地址

    centos系统查看本机IP地址,输入 ifconfig -a查看 centos查询上网公网IP输入 curl ifconfig.me 命令即可查看 centos查询上网网关IP,tracepath  ...

  10. C++指针作为函数的参数进行传递时注意的问题

    应注意问题: 当指针作为函数的参数进行传递的时候,本质上还是进行的"值传递",也就是复制了一个新的指向该地址的指针变量. 只有在被调函数中,对指针进行引用操作,才可以达到不需要返回 ...