Oracle’da başlangıç ve bitiş tarihleri verip, bir loop yapmak istenirse CONNECT BY LEVEL yapısı kullanılabilir.

By declaring start and end end you can make a loop with CONNECT BY LEVEL clause.

DECLARE
    v_start DATE := TO_DATE('23.01.2021','DD.MM.YYYY');
    v_end   DATE := TO_DATE('03.02.2021','DD.MM.YYYY');
    v_date  DATE;
    CURSOR c_dates IS
        SELECT v_start+LEVEL-1 AS dates
          FROM sys.dual
        CONNECT BY LEVEL <= v_end-v_start+1;
BEGIN
    OPEN c_dates;
    LOOP
        FETCH c_dates INTO v_date;
        EXIT WHEN c_dates%NOTFOUND;
        DBMS_OUTPUT.PUT_LINE(v_date);
    END LOOP;
    CLOSE c_dates;
END;

Sonuçları dbms_output.putline ile ekrana yazdırdım:

oracle date loop output