Чтобы ответить на ваш вопрос: да, вы можете передавать объекты в UDF. Но это не твоя проблема.
В анонимном блоке в конце вашего кода вы получили утверждение
select insert_groupby(c.fv,obj)
from cophir c;
Однако insert_groupby
- это процедура. Процедуры нельзя вызывать из операторов SQL, поскольку они не возвращают значение. Возможно, вы сможете изменить insert_groupby
на функцию, но вам нужно выяснить, что она должна возвращать.
Другой вариант - использовать цикл:
declare
obj fv_group_array := fv_group_array();
begin
FOR aRow IN (SELECT fv FROM cophir)
LOOP
insert_groupby(aRow.fv, obj);
END LOOP;
end;
Удачи.