使用Oracle PL / SQL For循环迭代逗号分隔的字符串
发布时间:2020-12-12 15:14:35 所属栏目:百科 来源:网络整理
导读:我正在编写一段需要迭代字符串内容的代码,每个值用a分隔. 例如我有我的元素 v_list_pak_like varchar2(4000) := 'PEBO,PTGC,PTTL,PTOP,PTA'; 如何将它放入Array / Cursor中以在循环中迭代它? for x in (elements)loop -- do my stuffend loop; 我正在寻找非
我正在编写一段需要迭代字符串内容的代码,每个值用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> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |