Поздно здесь я наслаждаюсь игрой с общими табличными выражениями. Вот как вы можете разделить вашу строку, используя CTE:
WITH
setup AS (SELECT 'a,b,c,d' letter FROM DUAL),
initialize AS
(SELECT letter || ',' AS letter
FROM setup),
splitset (letter, rest) AS
(SELECT SUBSTR (letter, 1, INSTR (letter, ',') - 1) AS letter
, SUBSTR (letter, INSTR (letter, ',') + 1) AS rest
FROM initialize
UNION ALL
SELECT SUBSTR (rest, 1, INSTR (rest, ',') - 1) AS letter
, SUBSTR (rest, INSTR (rest, ',') + 1) AS rest
FROM splitset
WHERE rest IS NOT NULL)
SELECT letter
FROM splitset;
Программа установки просто устанавливает некоторые примеры данных, ваш код начинается с 'intialize'.