<p class="intro">select regexp_substr('A,B,C,D,E', '[^,]', 1, level, 'i') as str from dual connect by level = length('A,B,C,D,E') - length(regexp_replace('A,B,C,D,E', ',', '')) 1;</p> select regexp_substr('A,B,C,D,E', '[^,]+', 1, level, 'i') as str<br> from dual<br> connect by level length('A,B,C,D,E') - length(regexp_replace('A,B,C,D,E', ',', '')) + 1;