Convert comma separated string to array in PL/SQL

前端 未结 14 2315
没有蜡笔的小新
没有蜡笔的小新 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:38

    TYPE string_aa IS TABLE OF VARCHAR2(32767) INDEX BY PLS_INTEGER;
    
    FUNCTION string_to_list(p_string_in IN VARCHAR2)
        RETURN string_aa
        IS
          TYPE ref_cursor IS ref cursor;
          l_cur    ref_cursor;
          l_strlist string_aa;
          l_x      PLS_INTEGER;
        BEGIN      
          IF p_string_in IS NOT NULL THEN 
             OPEN l_cur FOR 
                SELECT regexp_substr(p_string_in,'[^,]+', 1, level) FROM dual
                CONNECT BY regexp_substr(p_string_in, '[^,]+', 1, level) IS NOT NULL;      
             l_x := 1; 
             LOOP
               FETCH l_cur INTO l_strlist(l_x);
               EXIT WHEN l_cur%notfound;
               -- excludes NULL items  e.g.   1,2,,,,5,6,7
               l_x := l_x + 1;
             END LOOP;
          END IF;   
          RETURN l_strlist;
       END string_to_list;
    

提交回复
热议问题