Суть: необходимо сделать в функции цикл по результатам SELECTа. Простой вариант:
v versions%rowtype;
FOR v IN
select * from versions ver where iddoc=doc_id
LOOP
ver_id:=COALESCE(v.id,'-1');
ver_num:=COALESCE(v.number,'-1');
res:= ver_id || ver_num;
END LOOP;
тут versions - это таблица с определенным набором столбцов. но мне нужно выполнить цикл по
select *, verstatus(id) from versions ver where iddoc=doc_id
где verstatus(id) - функция выводящая доп инфу в зависимости от id, т е этот столбец не присутствует в versions...
получиться должно что то типа:
v ???(versions + other_column)%rowtype;
FOR v IN
select *, verstatus(id) from versions ver where iddoc=doc_id
LOOP
ver_id:=COALESCE(v.id,'-1');
ver_num:=COALESCE(v.number,'-1');
ver_stat:=COALESCE(v.verstatus, '' );
res:= ver_id || ver_num || ver_stat;
END LOOP;