如何向一个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/sql中如何根据条件向表中插入数据

我是一个初学者,如何向oracle数据库表中插入数据

oracle 中报ora-30926 无法在源表中获得稳定的行 是怎么回事

oracle 中报ora-30926 无法在源表中获得稳定的行 是怎么回事

向Oracle数据库插入数据时提示 ora-00947: 没有足够的值

oracle用sql 语句如何向表中插入时间?