Заполните массив из нашего sys_refcursor - PullRequest
0 голосов
/ 21 мая 2019

Мне нужно вызывать другие процедуры, передавая ему массив. Можно ли заполнить массив из одного столбца курсора. Не выбранный ниже запрос упрощен. Фактическое содержит большое количество объединений для поддержки определенных критериев. Поэтому я хочу избежать дублирования запроса в коде.

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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...