Salah satu solusi yang saya gunakan untuk ini adalah mengonversi rentang tanggal menjadi rentang bilangan bulat yang dapat Anda gunakan dalam loop for, lalu mengonversi kembali ke tanggal untuk melakukan hal-hal dengannya. Anda tidak dapat bergabung atau apa pun dengan cara ini, tetapi ini adalah solusi yang jauh lebih kecil dari yang sudah diposting:
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;