【发布时间】:2020-02-02 03:53:41
【问题描述】:
我正在尝试从表中获取变量最大日期,然后使用该变量将记录插入到另一个大于变量最大日期的表中。我已经创建了该程序并对其进行了测试,但每次我通过 dbms_scheduler 将程序作为计划作业运行时它只插入 1 条记录,每 30 分钟运行一次。我的测试用例允许第一次运行插入 6 行,在第一次作业运行后它只插入 6 条记录中的 1 条记录。然后下一次运行插入了 1 条记录……等等。我正在对此进行测试,以最终在概念上用于每 30 分钟插入附加几千行作为计划作业。快速运行此类过程并批量插入行的最有效方法是什么。我正在考虑将表更改为不记录并删除任何索引并在插入后重建它们。什么是最好的方法,提前谢谢你。
这是我的代码:
create or replace procedure update_cars
AS
v_date date;
begin
execute immediate 'alter session set NLS_DATE_FORMAT='DD-MON-YY HH24:MI:SS'';
select max(inventory_date) into v_date from car_equipment;
insert /*+APPEND*/ into car_equipment(count_cars,equipment_type,location,inventory_date,count_inventory)
select count_cars,equipment_type,location,inventory_date,count_inventory
from car_source where inventory_date > v_date;
end;
【问题讨论】:
标签: oracle insert append procedure