使用Oracle PL / SQL For循环迭代逗号分隔的字符串

前端之家收集整理的这篇文章主要介绍了使用Oracle PL / SQL For循环迭代逗号分隔的字符串前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在编写一段需要迭代字符串内容代码,每个值用a分隔.

例如我有我的元素

v_list_pak_like varchar2(4000) := 'PEBO,PTGC,PTTL,PTOP,PTA';

如何将它放入Array / Cursor中以在循环中迭代它?

for x in (elements)
loop
   -- do my stuff
end loop;

我正在寻找非常简单的方法,如果可能的话,避免声明关联数组.

是否有可能创建一个函数来返回可用作for循环的输入的东西(与https://stackoverflow.com/a/19184203/6019417中可以使用的while相反)?

提前谢谢了.

您可以在纯sql中轻松完成.有多种方法,见 Split comma delimited string into rows in Oracle

但是,如果你真的想在PL / sql中这样做,那么你可以这样做:

sql> set serveroutput on
sql> DECLARE
  2    str VARCHAR2(100) := 'PEBO,PTA';
  3  BEGIN
  4    FOR i IN
  5    (SELECT trim(regexp_substr(str,'[^,]+',1,LEVEL)) l
  6    FROM dual
  7      CONNECT BY LEVEL <= regexp_count(str,',')+1
  8    )
  9    LOOP
 10      dbms_output.put_line(i.l);
 11    END LOOP;
 12  END;
 13  /
PEBO
PTGC
PTTL
PTOP
PTA

PL/sql procedure successfully completed.

sql>
原文链接:/oracle/205015.html

猜你在找的Oracle相关文章