大表数据插入批量提交
来源:互联网 发布:网络歌手麦子 编辑:程序博客网 时间:2024/04/26 21:25
对大表进行插入时,数据非常多,会把undo表空间撑爆,导致插入不成功,可以使用批量提交进行插入,及时释放回滚段。
declare
--定义cursor把数据全部读入内存中
cursor cur is
select nsrzhdah, sfzjlx_dm, sfzjhm, xm, nsrsbh,
zlsfqq, lydm, yxbz, bdbz, hcode,
fkid , fxbz, zrrlx_dm , xybz , lrrq ,
lrr_dm, xgrq , xgr_dm , nsrswjg_dm,wspzxh ,
ywxh , bdlx_dm , czlx_dm , sjlyxt , sjjzrq ,
sjscrq , sjbgbz , sjtjrq , sjgsdq
from j1_g3_zbq.INFT02_JBXX_ZRR;
--自定义集合类型
type rec is table of cur%rowtype;
recs rec;
begin
execute immediate 'alter table j1_ldm.ldmt02_jbxx_zrr nologging';
open cur;
while (true) loop
fetch cur bulk collect
into recs limit 10000;--10000行执行一次游标读取操作
--把数据逐条插入
forall i in 1 .. recs.count
insert into j1_ldm.ldmt02_jbxx_zrr values recs (i);
commit;
exit when cur%notfound;
end loop;
close cur;
execute immediate 'alter table j1_ldm.ldmt02_jbxx_zrr logging';
end;
/
open xxxx for select .....; 打开游标
loop
fetch xxxx bulk collect
into v1,v2,v3..... limit 1000; --限制每次取1000行
n_count := v1.count; --获取本次FETCH得到的行数
exit when n_count = 0;--等于0则退出循环
forall i in v1.first .. v1.last
insert into ... values (v1(i),v2(i),.....); --批量插入
commit; 一次提交
end loop;
close XXXX; --关闭游标
- 大表数据插入批量提交
- SqlBulkCopy快速批量大数据插入
- .NET批量大数据插入性能分析及比较(4.使用DataAdapter批量插入)
- .NET批量大数据插入性能分析及比较(4.使用DataAdapter批量插入)
- .NET批量大数据插入性能分析及比较(6.使用表值参数)
- .NET批量大数据插入性能分析及比较(6.使用表值参数)
- .NET批量大数据插入性能分析及比较(6.使用表值参数)
- 几种数据库的大数据批量插入
- 几种数据库的大数据批量插入
- 几种数据库的大数据批量插入【转】
- C#:几种数据库的大数据批量插入
- C#:几种数据库的大数据批量插入
- 几种数据库的大数据批量插入
- C#:几种数据库的大数据批量插入
- 几种数据库的大数据批量插入【转】
- 几种数据库的大数据批量插入
- C#批量插入大数据到SQL server
- 几种数据库的大数据批量插入
- 新浪分享 Insufficient app permissions!
- C++标准库——简介
- Android 料阅读及视频观看,先下载后打开
- HDU1260 Tickets DP
- 重定位cout到文件,不输出到屏幕
- 大表数据插入批量提交
- Activity生命周期
- Swift禁止横屏
- NIO
- python入门--基本数据类型
- [Mac技巧]非Mac键盘/PC键盘 互换Win Alt 按键功能
- Magento2 create a new module
- 如何修改Blobs Storage Size的最小值以及如何验证Blob已经被存储到自定义的Blob Store里
- Write operations are not allowed in read-only mode (FlushMode.NEVER/MANUAL): Turn your Session into