0

我正在尝试使用 将集合中的数据插入表中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 核心开发人员,通过在几个站点学习,我能够编写上述代码。

4

0 回答 0