Интервалы значений

AlixBZ
Дата: 23.10.2015 16:15:13
Здравствуйте!

Прошу помощи в решении следующей задачи:

есть записи с интервалами дат (интервалы не пересекаются, контролируется логикой выше):

1. date_n1, date_m1
2. date_n2, date_m2
. . .
k. date_nk, date_mk

Нужно получить список всех дат из всех интервалов в виде плоского списка.

т.е. сначала нужно развернуть каждкую k-ю строку в значения с date_nk по date_mk:

1. date_11, date_21, date_31, . . ., date_m1
2. date_12, date_22, date_32, . . ., date_m2
. . . ,

а потом расположить все полученные даты в одном списке во порядку:
date_11, date_21, . . . , date_12, date_22, . . . и т.д.

Желательно обойтись вьюхой и декларативным sql без доп. императивного кода на pl sql. БД Oracle.
orawish
Дата: 23.10.2015 16:34:33
AlixBZ,

ну, например, listagg
только осторожно - с такими хотелками, не на надорвите пупок (например) клиенту
rekrabbe
Дата: 23.10.2015 17:40:13
Странные требования использовать только sql, listagg развалится при достижении строки в 4000 символов и скажет, что строка слишком длинная, если хотите нормальное решение, то нужно писать свою аггрегирующую функцию на pl/sql. Например вот.
ArtNick
Дата: 23.10.2015 23:47:24
rekrabbe
Странные требования использовать только sql, listagg развалится при достижении строки в 4000 символов и скажет, что строка слишком длинная, если хотите нормальное решение, то нужно писать свою аггрегирующую функцию на pl/sql. Например вот.

А xmlagg чем плох?