Saturday, May 17, 2014

Convert CSV to Rows in Oracle

Query


SELECT substr(csv,
              instr(csv,
                    ',',
                    1,
                    lev) + 1,
              instr(csv,
                    ',',
                   1,
                    lev + 1) - instr(csv,
                                    ',',
                                    1,
                                    lev) - 1)
  FROM (SELECT ',' || 'a,b,c,d' || ',' csv
          FROM dual),
       (SELECT LEVEL lev
          FROM dual
        CONNECT BY LEVEL <= 100)
 WHERE lev <= length(csv) - length(REPLACE(csv,
                                           ',')) - 1;

0 comments:

Post a Comment