Я хочу понять использование и необходимость в массовых сборах forall
заявлений.объемный сбор ... для всех видов использования
В качестве примера упоминается here
В большинстве примеров в различных веб-страниц; авторы сначала извлекают данные из таблицы, используя операции массового сбора. После этого они вставляют его в целевую таблицу, используя оператор forall
.
DECLARE
TYPE prod_tab IS TABLE OF products%ROWTYPE;
products_tab prod_tab := prod_tab();
BEGIN
-- Populate a collection - 100000 rows
SELECT * BULK COLLECT INTO products_tab FROM source_products;
FORALL i in products_tab.first .. products_tab.last
INSERT INTO target_products VALUES products_tab(i);
Но я не понимаю, когда выбрать этот метод. Я думаю, что могу написать код, как показано ниже:
INSERT INTO target_products
SELECT * FROM SOURCE_PRODUCTS;
И я думаю, что вставить в инструкцию выбора можно более высокую производительность.
Итак, почему нам нужно выбирать навалом сбор forall
заявления? Для регистрации ошибок или любых других преимуществ?
ОК спасибо четырем вашим комментариям. – user125687
Вы когда-нибудь знаете о насосе данных? – user125687