Jednym z rozwiązań, którego używam w tym celu, jest przekonwertowanie zakresu dat na zakres liczb całkowitych, którego można użyć w pętli for, a następnie przekonwertowanie z powrotem na datę, aby coś z tym zrobić. Nie możesz robić żadnych łączeń ani nic w ten sposób, ale jest to znacznie mniejsze rozwiązanie niż te, które już opublikowali:
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;