暂无图片
oracle 批量插入数据,怎么做?比如有10条数据。 是用for循环在程序里面一条一条地调用insert,还是其他方法? 还有,for循环能保证事务么?
我来答
分享
Garry
2021-08-26
oracle 批量插入数据,怎么做?比如有10条数据。 是用for循环在程序里面一条一条地调用insert,还是其他方法? 还有,for循环能保证事务么?

oracle 批量插入数据,怎么做?比如有10条数据。
是用for循环在程序里面一条一条地调用insert,还是其他方法?
还有,for循环能保证事务么?

我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
Lucifer三思而后行
暂无图片
2021-08-26

例如,执行以下存储过程,即一次性提交:

DECLARE BEGIN FOR i IN 1 .. 10 LOOP insert into lucifer values (i,'test'); END LOOP; END; /

image.png

查询插入结果:

image.png

当然也可以直接在循环内进行单条commit,根据你需要插入的数据量来进行选择,如果需要一次性提交数据很多,建议分批次进行提交,比如 1000条 commit 一次,否则可能会导致快照过旧等问题。

暂无图片 评论
暂无图片 有用 0
打赏 0
暂无图片
薛晓刚
2021-08-26

如果我们写存储过程模拟的话。是这样的。commit在循环里面就是一条条提交。commit在循环外面就是一起提交。
事务能不能保证就看你最后的commit了

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏