如何向一个oracle表中快速插入很多条数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何向一个oracle表中快速插入很多条数据相关的知识,希望对你有一定的参考价值。
Oracle数据的批量插入前两天接到一个需求——需要编程将SQL Server中的数据插入至Oracle。数据大约有20多万条记录。开始的时候我采取了直接构建SQL插入的方式,结果耗时太长。为了提高性能我上网找了资料。最终采用DataAdapter批量插入至Oracle,提高了性能。
代码如下:
一,直接构建SQL语句插入
VB.NET Code
二,采用DataAdapter实现批量插入
VB.NET Code
在我的环境中批量插入24万笔记录用时大约260s左右。
貌似SQL Server中.net驱动程序提供了SqlBulkCopy类来提高大量数据导入的性能。有需要的朋友可以查下MSDN。 参考技术A 可以同时把很多条不同的数据插入到oracle表中
一次向 Oracle 数据库表插入超过 50k 条记录[关闭]
【中文标题】一次向 Oracle 数据库表插入超过 50k 条记录[关闭]【英文标题】:Inserting more than 50k records at a time to Oracle database table [closed] 【发布时间】:2012-12-19 10:01:59 【问题描述】:我需要向 oracle 数据库表中插入超过 50k 条记录,过程是我正在从外部 excel 文件中读取数据并尝试一次插入具有超过 50k 条记录的表中。数据应该插入到表中高效。我能够从 excel 文件中检索数据,现在数据已经准备好了,但是任何人都可以建议我将数据插入到 oracle 数据库表中的最佳方法。
【问题讨论】:
你有没有尝试过?请与我们分享,这样我们就可以帮助您改进您所拥有的。 最快的是使用oracle loader。通过 java,您应该处理 1000 - 10000 条记录的批次并使用 jdbc 批量插入 您是否尝试使用批量加载?而不是一次插入所有 50k 条记录? @JonTaylor 使用 apache poi 我能够从 excel 文件中读取整个记录,但我无法决定如何将整个数据插入到 oracle 数据库表中 @PradeepSimha 我没有尝试使用批量加载.. 【参考方案1】:看看JDBC batch updates
您可以创建一个PreparedStatement
,循环遍历您要插入的数据并批量添加,最后执行。
【讨论】:
【参考方案2】:有专门为此SQL Loader设计的批量上传工具
【讨论】:
如何处理excel文件 您应该阅读提供的链接。您的问题专门在那里处理:orafaq.com/wiki/…以上是关于如何向一个oracle表中快速插入很多条数据的主要内容,如果未能解决你的问题,请参考以下文章
oracle 中报ora-30926 无法在源表中获得稳定的行 是怎么回事
oracle 中报ora-30926 无法在源表中获得稳定的行 是怎么回事