Почему вы меняете сессию? Какую выгоду вы ожидаете от этого?
Код, который вы написали, может быть "упрощен" до
create or replace procedure update_cars
as
begin
insert into car_equipment (count_cars,, equipment_type, ...)
select s.count_cars, s.equipment_type, ...
from car_source s
where inventory_date > (select max(e.inventory_date) from car_equipment e);
end;
Если код вставляет только одну строку, то проверьте значения даты как из car_equipment
, так и car_source
столы. Без примеров данных я бы сказал, что с кодом все в порядке (по крайней мере, для меня это выглядит нормально).
Если вы будете вставлять несколько тысяч строк каждые 30 минут, этого не должно бытьпроблема, поскольку Oracle способен легко справиться с этим .