Другим вариантом может быть использование конвейерной табличной функции с начальной и конечной датами в качестве входных данных. Объявление пакета:
create or replace package tst_pkg as
type xx is table of date;
function get_days (start_date date, end_date date) return xx pipelined;
end tst_pkg;
Тело пакета:
CREATE OR REPLACE
PACKAGE BODY TST_PKG AS
function get_days (start_date date, end_date date) return xx pipelined AS
BEGIN
for xx in 0 .. (end_date - start_date) loop
pipe row (trunc(start_date + xx));
end loop;
END get_days;
END TST_PKG;
Запрос будет выглядеть примерно так:один ниже
select id, column_value from emp, table(tst_pkg.get_days(start_date, end_date)) ;