Một giải pháp mà tôi sử dụng cho việc này là chuyển đổi phạm vi ngày thành một phạm vi số nguyên mà bạn có thể sử dụng trong vòng lặp for, sau đó chuyển đổi trở lại ngày để thực hiện công việc với nó. Bạn không thể thực hiện bất kỳ liên kết hoặc bất kỳ điều gì theo cách này, nhưng đó là một giải pháp nhỏ hơn nhiều mà những người đã đăng:
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;