Eine Lösung, die ich dafür verwende, besteht darin, den Datumsbereich in einen ganzzahligen Bereich umzuwandeln, den Sie in einer for-Schleife verwenden können, und dann wieder in ein Datum umzuwandeln, um etwas damit zu tun. Sie können auf diese Weise keine Joins oder ähnliches erstellen, aber es ist eine viel kleinere Lösung als die bereits geposteten:
declare
start_date number;
end_date number;
business_date varchar2(8);
begin
start_date := to_number(to_char(to_date('2013-04-25', 'yyyy-MM-dd'), 'j'));
end_date := to_number(to_char(to_date('2013-05-31', 'yyyy-MM-dd'), 'j'));
for cur_r in start_date..end_date loop
business_date := to_char(to_date(cur_r, 'j'), 'yyyy-MM-dd');
dbms_output.put_line(business_date);
end loop;
end;