Как добавить массово выбранные строки в таблицу типа в оракуле?

Я массово собираю записи из Cursor-B для каждой записи в cursor-A, есть ли способ добавить эти данные Cursor-B в тип таблицы, чтобы я мог вставить их в таблицу сразу?

  • Я не могу объединить курсор-A и курсор-B SQL.
  • Я знаю, что BULK COLLECT никогда не добавляется в коллекцию, но есть ли способ достичь того, что я упоминаю.

1 ответ

Вы можете объединить коллекции в одну операцию, используя MULTISET UNION:

declare
    --Collection types.
    type type_rec is record(a number);
    type type_nt is table of type_rec;

    --Collection variables.
    v_var1 type_nt;
    v_var2 type_nt;
    v_both type_nt;
begin
    --Get the data.
    select 1 bulk collect into v_var1 from dual connect by level <= 1000;
    select 1 bulk collect into v_var2 from dual connect by level <= 1000;

    --Combine the two nested tables together in a single operation.
    v_both := v_var1 multiset union all v_var2;
end;
/
Другие вопросы по тегам