То, что вы опубликовали, полностью синтаксис SQL Server. В Oracle вы, вероятно, сделали бы это в SQL
select date '2009-01-01' + level
from dual
connect by level <= 31
Если вы хотите использовать PL / SQL (и при условии, что вы используете инструмент, который будет отображать вывод из dbms_output
, который вы не должныПредположим, что произойдет в Prod), вы могли бы сделать что-то вроде этого.
declare
l_dt date := date '2009-01-01';
begin
while( l_dt <= date '2009-01-31' )
loop
dbms_output.put_line( to_char( l_dt, 'yyyy-mm-dd' ) );
l_dt := l_dt + 1;
end loop;
end;