WITH temp_table AS
(SELECT TO_DATE('01-JAN-2020', 'DD-MON-YYYY') start_with_date
,DATEADD('Days', 0, start_with_date) start_date
,DATEADD('Days', 1, start_with_date) end_date
,1 level
FROM dual
)
SELECT DATEADD('Days', level, start_date) n_start_date
,DATEADD('Days', level, end_date) n_end_date
,start_date
,end_date
,(level +1) AS level
FROM temp_table
START WITH start_date = TO_DATE('01-JAN-2020', 'DD-MON-YYYY')
CONNECT BY
start_date + LEVEL >= PRIOR end_date
AND end_date < TO_DATE('01-JAN-2021', 'DD-MON-YYYY')
LIMIT 25
;