Мне нужно вызывать другие процедуры, передавая ему массив. Можно ли заполнить массив из одного столбца курсора. Не выбранный ниже запрос упрощен. Фактическое содержит большое количество объединений для поддержки определенных критериев. Поэтому я хочу избежать дублирования запроса в коде.
create or replace TYPE personid_array as table of varchar2(9)
procedure get_by_name (
i_name in varchar2,
o_person_cursor out sys_refcursor,
o_history_cursor out sys_refcursor
)as
v_personid_array personid_array := personid_array();
begin
open o_person_cursor for
select personid, name, age, height from person
where name = i_name;
-- I need to populate v_personid_array with only o_person_cursor.personid
-- This is wrong
FETCH o_person_cursor BULK COLLECT INTO v_personid_array;
get_history_by_personids(v_personid_array, o_history_cursor);
end get_by_name;