Oracle Loop分隔列表,用于检查记录是否存在

时间:2016-08-24 15:48:24

标签: oracle plsql

我是PL / SQL的新手,并从旧程序中获取代码,检查表中是否存在记录:

     oRetValue := ' ';
  SELECT f1
  INTO oRetValue
  FROM t1
  WHERE w1='w1' 
  AND code  = iCode;

之前没关系,但现在应用程序有超过500行要验证。我想传递一个字符串,其中所有代码都用逗号分隔,并且该过程将循环并返回未找到的所有icode。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

试试这个:

select f1
  into oretvalue
  from t1
 where w1 = 'w1'
   and code in
       (select p_code
          from (select level as id,
                       regexp_substr(icode, '[^,]+', 1, level) as p_code
                  from dual
                connect by regexp_substr(icode, '[^,]+', 1, level) is not null));