vous auriez besoin d'utiliser le constructeur d'objet sur le select :
SELECT OBJTYP(A, B, C)
FROM my_table
WHERE Study_Number = p_StudyNum(i)
mais vous pouvez simplifier la procédure à ceci au lieu de toutes ces boucles :
begin
select cast(multiset(select /*+ cardinality(s, 10) */ a, b, c
from my_table t, table(p_StudyNum) s
where t.study_number = s.column_value) as OutputTyp)
into p_StdyDtl
from dual;
end;