En lösning som jag använder för detta är att konvertera datumintervallet till ett heltalsintervall som du kan använda i en for-loop och sedan konvertera tillbaka till ett datum för att göra saker med det. Du kan inte göra några joins eller något på det här sättet, men det är en mycket mindre lösning än de som redan har lagt upp:
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;