Разбить одну строку на несколько строк

  • Oracle 10g, 11g

Используя иерархический запрос (connect by level) и, зная, что, например, запятая (в кач-ве delimeter) будет делить строку на части, а также задействовав регулярное выражение regexp_substr, можем разбить строку на несколько строк.

with t as
(select 'O,r,a,c,l,e' str from dual)
select regexp_substr(str, '[^,]+', 1, level) res from t
connect by regexp_substr(str, '[^,]+', 1, level) is not null;

res
---
O
r
a
c
l
e