sql
SELECT REGEXP_SUBSTR('a,b,c,d', '[^,]+', 1, ROWNUM) CODE
FROM DUAL
CONNECT BY ROWNUM <=
LENGTH('a,b,c,d') - LENGTH(REPLACE('a,b,c,d', ',', '')) + 1;
select LENGTH('a,b,c,d') from dual; 7
select REPLACE('a,b,c,d', ',', '') from dual; abcd
select LENGTH(REPLACE('a,b,c,d', ',', '')) from dual; 4
select LENGTH('a,b,c,d') - LENGTH(REPLACE('a,b,c,d', ',', '')) + 1 from dual; 4
result
'a,b,c,d'
a
b
c
d