【发布时间】:2018-01-16 22:08:40
【问题描述】:
create or replace procedure ins_act
as
l_result sys_refcursor;
l_id1 varchar2(32);
l_id2 varchar2(32);
l_id3 varchar2(32);
l_pid varchar2(16);
l_ac varchar2(32);
l_activity_date varchar2(32);
l_file_id varchar2(64):='FILE_' ||
to_char(sysdate,'MM/DD/YYYY');
begin
-- Procedure to pull the get records
get_act(l_result);
loop
-- Bulk fetch
fetch l_result bulk collect into
l_id1,l_id2,l_id3,l_platform_id,l_ac,l_activity_date,l_file_id
limit 100;
-- I need to insert into a temp table here.
-- Using bulk collect to increase the process speed and there are no
-- tables matching the l_result output type.
-- temp table
insert into temp(
id1,id2,id3,platform_id,activity_code,update_timestamp,file_id)
values(to_char(to_date(l_id1,'mm/dd/yyyy'),'mm/dd/yyyy'),
l_id2,l_id3,0,l_activity_code,sysdate,l_file_id);
exit when l_result%notfound;
end loop;
close l_result;*/
end;
/
我需要将 sys_refcursor l_result 记录插入到临时表中。请提出实现这一目标的最佳方法。将插入大约 250 k - 100 万条记录
【问题讨论】:
-
to_char(to_date(l_id1,'mm/dd/yyyy'),'mm/dd/yyyy')的目的到底是什么?
标签: sql oracle plsql bulkinsert