1张表23个字段2400w行数据,直接insert into tb2 select a,b,c... from tb1 就可以的,但是需耗时3小时,怎么样才能快点?循环插入的话,我拿小的表(70w行)试,5w提交1次,结果花的时间多了1倍,不敢拿大表去跑了。
因为是在别人已经开发好的平台上做二次开发,所以只能通过PL/SQL语句块来实现的,别的都用不上。
因为是在别人已经开发好的平台上做二次开发,所以只能通过PL/SQL语句块来实现的,别的都用不上。
INSERT /*+ append nologging */ INTO
----定义游标
cursor cur_INSERT is
SELECT * FROM TABLE1 WHERE .........; v_currow cur_INSERT%rowtype;
OPREN cur_INSERT;------打开游标
begin
loop
fetch cur_INSERT into cur_row;
EXIT WHEN cur_LDBank%NOTFOUND; --如果游标到结尾就退出
insert into table2 nologing --无日志插入 values
( v_currow.col1,v_currow.col2,.....
); -- end loop;end; 用存储过程插入,我这么七百多万的数据都是这么做的,挺快的