Java 更快地插入到oracle

Java 更快地插入到oracle,java,sql-server,oracle,Java,Sql Server,Oracle,在sql server主机上有一个视图,该视图有大约100列,每4小时将插入大约40000条新记录。 我已经使用netbeans编写了一个java应用程序,它首先从SQL Server主机读取数据,然后将数据插入到另一台主机上的Oracle数据库表中 阅读时间很短,从不超过20秒,但插入有时需要超过10分钟! 我不能使用批处理,因为如果发生异常,我需要继续插入,但如果使用批处理,它将在第一个异常后终止 如何加快处理速度?您可以在Oracle中轻松使用批量处理。只需保存例外。当批量操作完成且至少出

在sql server主机上有一个视图,该视图有大约100列,每4小时将插入大约40000条新记录。 我已经使用netbeans编写了一个java应用程序,它首先从SQL Server主机读取数据,然后将数据插入到另一台主机上的Oracle数据库表中

阅读时间很短,从不超过20秒,但插入有时需要超过10分钟! 我不能使用批处理,因为如果发生异常,我需要继续插入,但如果使用批处理,它将在第一个异常后终止


如何加快处理速度?

您可以在Oracle中轻松使用批量处理。只需保存例外。当批量操作完成且至少出现1个异常时,将引发一个异常,使您有机会处理这些异常


有关解释和示例,请参阅向下滚动到异常。

这没有意义。无法使用批处理,因为如果其中一个批处理中发生异常,它将停止插入?如果您没有使用批处理,那么在插入过程中第一个异常发生后,它不会终止吗?谢谢您的回答,我正在使用try-and-catch处理异常,但我搜索了很多异常,它们对批处理不起作用。您是否可以发布您执行插入的摘要版本?不确定为什么不能记录/处理一个批次的异常,然后转移到下一个批次。这需要很长时间,因为我猜您是在逐行插入记录,尤其是在使用try-catch时。你所能做的就是优化你的代码。如果您要分析oracle服务器,您会发现它一直在“等待客户端”,而不是等待数据库。您可以通过使用“适当”的集成工具(如SSIS或Oracle目前销售的任何工具)来加快流程。您可以使用带有DML错误日志的批处理吗?例如: