Ну, это сильно зависит от вашей библиотеки доступа к данным.
Вы можете вернуть любой SQL-совместимый тип в качестве параметра.Это включает в себя сложные типы SQL и типы коллекций.Но большинство библиотек просто не способны обрабатывать типы объектов Oracle.
В любом случае, в моих примерах будут использоваться следующие типы объектов:
create type SomeType as object(Field1 VarChar(50));
create type SomeTypeList as table of SomeType;
Когда ваша библиотека доступа может обрабатывать типы объектов, вы можетепросто верните список объектов PL / SQL:
begin
:list := SomeTypeList(SomeType('a'),SomeType('b'),SomeType('c'));
end;
Если нет, вы можете взломать его, заставив этот список выбрать и вернуть его результат в виде курсора:
declare
list SomeTypeList;
begin
list := SomeTypeList(SomeType('a'),SomeType('b'),SomeType('c'));
open :yourCursor for
SELECT A
FROM table(list);
end;