How to create multi-row output for a Comma seperated value

Say for example we have a string 'A,B,C,D,E,F'. We would like to have it printed in separate lines say

A
B
C
D
E
F

Like so.

Now we can use a simple SQL statement to convert the same.

SELECT SUBSTR('A,B,C,D,E,F',
INSTR('A,B,C,D,E,F',',',1,
LEVEL)-1,1) FROM DUAL
CONNECT BY LEVEL <= LENGTH(
REPLACE('A,B,C,D,E,F',','))


To elaborate the technique, we have used the following logic:

1. Used CONNECT BY statement to find out how many rows are necessary
2. INSTR to find out the place of each row
3. SUBSTR to cut the string between the comma

Well what was the assumptions before using this query. The string between comma are having length of one. Any number of strings can be given in this fashion.