Convert comma separated string to array in PL/SQL

前端 未结 14 2251
没有蜡笔的小新
没有蜡笔的小新 2020-11-27 03:19

How do I convert a comma separated string to a array?

I have the input \'1,2,3\' , and I need to convert it into an array.

14条回答
  •  一生所求
    2020-11-27 03:59

    declare
    seprator varchar2(1):=',';
    dosweeklist varchar2(4000):='a,b,c';
    begin
    for i in (SELECT  SUBSTR(dosweeklist,
                             case when level=1 then 1 else INSTR(dosweeklist,seprator,1,LEVEL-1)+1 end,
                             NVL(NULLIF(INSTR(dosweeklist,seprator,1,LEVEL),0),length(dosweeklist)+1) - case when level=1 then 1 else INSTR(dosweeklist,seprator,1,LEVEL-1)+1 end) dat 
              FROM dual
              CONNECT BY LEVEL <= LENGTH(dosweeklist) - LENGTH(REPLACE(dosweeklist,seprator,'')) +1)
    loop
    dbms_output.put_line(i.dat);
    end loop;
    end;
    /
    

    so select query only in for loop can do the trick, by replacing dosweeklist as your delimited string and seprator as your delimited character.

    Lets see output

    a
    
    b
    
    c
    

提交回复
热议问题