В Oracle 18 c ваш запрос работает без ошибок db <> fiddle .
В 11g (и, возможно, в других версиях) возникли проблемы с рекурсивными запросами и датами. и вам, возможно, будет лучше использовать числовые значения, а затем добавить значение к датам позже:
WITH DATETABLE( tempdate ) AS (
SELECT 0
FROM DUAL
UNION ALL
SELECT tempdate + 1
FROM DATETABLE
WHERE DATE '2020-01-01' + tempdate + 1 <= DATE '2020-02-01'
)
SELECT DATE '2020-01-01' + tempdate AS tempdate
FROM DATETABLE
Результаты :
| TEMPDATE |
|----------------------|
| 2020-01-01T00:00:00Z |
| 2020-01-02T00:00:00Z |
| 2020-01-03T00:00:00Z |
...
| 2020-01-30T00:00:00Z |
| 2020-01-31T00:00:00Z |
| 2020-02-01T00:00:00Z |