with tbl2 as ( select',1,2,5,9,1,2,5,9,1,3,9,22,25,10,155555,'astempfrom dual ) select substr(temp,currentIndex,nextIndex-currentIndex) as cols from ( selecttemp ,level lv ,instr(temp,',',instr(temp,','),level)+1as currentIndex ,instr(temp,',',instr(temp,','),level+1) as nextIndex from ( selecttemp ,length(temp)- length(replace(temp,','))-1 rowcnt from tbl2 ) a connect bylevel<= rowcnt )