В настоящее время я вставляю данные из файла в таблицу. Я отформатирую данные перед их вставкой в таблицу (Удалить вкладки/возврат каретки/получить коды символов для определенного текста и т. Д.). Во-первых, я должен проверить, существует ли запись и обновить ее, если это произойдет. Если это не значит, что запись должна быть вставлена в таблицу.Массовая вставка и обновление и обновление одновременно
Проблема, с которой я сталкиваюсь, занимает очень много времени. У меня есть два файла: один с чуть менее 500 тыс. Записей и один с более чем 4 милями. Если можно запустить массовый сбор, чтобы я сделал оба?
E.G.
open c_cur;
loop
fetch c_cur bulk collect into examp limit 50000;
exit when limit.count = 0
forall x in 1..limit.count
update table1
set...
where...
if sql%notfound then
insert into table1
values (...)
end if;
commit;
end loop;
close c_cur;
Возможно ли это?
Я также слышал о настройке промежуточного стола и демпинге файла там, а затем оттуда. Это лучший вариант? Насколько я могу увеличить производительность?
Я также предпочел бы не делать слияние на столе из файла.
Спасибо.
Вы можете использовать комбинацию FORALL и слияния. См. [Здесь] (http://www.morganslibrary.org/reference/plsql/array_processing.html#apfm) – Aramillo