我正在尝试使用 将集合中的数据插入表中FORALL
,我预计该过程会很快,但不幸的是过程相当缓慢,并且没有显示出任何重大的性能改进。
下面的代码:
create or replace Procedure data_test (E in nchar, J in number)
AS
Exec_data JR_Table; //Created a nested table variable
BEGIN
select JR_Type (job_id, e_id, USER_NAME, start_time, end_time)
bulk collect into Exec_data //Bulk collect into this variable
from ( taBLE);
FORALL counter in Exec_data.first..Exec_data.last //insert using FORALL
insert into DATA_TEMP1 Values
(Exec_data(counter).JOB_ID, Exec_data(counter).E_ID, Exec_data(counter).START_TIME, Exec_data(counter).END_TIME;
commit;
End;
上面没有产生任何令人满意的结果,只有 1300 条记录插入到表中,所用时间为 6 分钟,相反我想尝试以下列方式使用 FORALL:
FORALL counter in Exec_data.first..Exec_data.last //insert using FORALL
insert into DATA_TEMP1 Values
(Exec_data(counter));
期望上述代码更改将加快该过程。
尝试编译代码时出现错误:
错误(474,33):PL/SQL:ORA-00932:不一致的数据类型:预期 - 得到 -
我相信他们应该是完成这项工作的一种方式。我不是 Oracle 核心开发人员,通过在几个站点学习,我能够编写上述代码。