Что может быть сделано в чистом SQL, обычно должно быть сделано в чистом SQL:
declare
num number := &Number;
serie varchar2(200);
begin
select 'S = ' || listagg(rownum, ', ') within group (order by rownum)
into serie
from dual
connect by level <= num;
dbms_output.put_line(serie);
end;
/
Результат для num = 10
:
S = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
Обратите внимание, функция listagg
была введена в версии Oracle 11.2.