У меня есть две процедуры.Когда вторая процедура вызывается процедурой 1, она возвращает таблицу в качестве параметра out.Иногда процедура 2 может вызываться более одного раза.Вопрос в том, как объединить (или добавить) все, что я получил от процедуры 2, в одну таблицу?
Тип таблицы определяется пользователем:
CREATE OR REPLACE TYPE t_record AS OBJECT
(
i NUMBER,
city_name VARCHAR2(100)
);
create or replace type t_table as table of t_record;
Я знаю о MULTISET UNION ALL
,но кажется невозможным его использовать, поскольку я не знаю, сколько раз процедура 2 будет вызываться в процедуре 1.
Что мне делать?Может быть, все, что я делаю, неправильно, и есть лучший способ сделать это.Я буду рад услышать любые предложения.
FOR @ hotfix
Я упростил код процедуры 1. Она фактически вызывает процедуру 2 внутри цикла и после цикла.
FOR insurance_program IN insurance_programs LOOP
IF insurance_program.level_of_service = 'additional' THEN
Procedure2(client_id, 2, insurance_program.program_id, avaliable_cities);
END IF;
END LOOP;
Procedure2(client_id, 1, 1, avaliable_cities);