使用 Oracle.DataAccess & 将数据表批量插入到 Oracle VB网
我正在将 csv 文件读取到 vb.net 中的数据表中,并进行一些检查并附加一个额外的列。 然后我想使用微软的 Oracle.DataAccess (没有选择)对 Oracle 数据库执行批量插入。
执行此操作的最佳方法是什么,因为没有像 SQLserver 中那样的批量导入。
谢谢
I am reading a csv file in to a datatable in vb.net and making a few checks and appending an extra column.
I then want to perform a bulk insert using microsofts Oracle.DataAccess (no choice in this) to an Oracle database.
what would be the best way to perform this as there is no bulkImport like in SQLserver.
thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
为什么使用批量插入而不是常规插入?
如果要避免生成重做日志条目,最好的方法是常规插入到全局临时表中[它不会生成重做,因为它是临时的,因此永远不需要恢复]。然后,最后,从临时表 INSERT/*+APPEND */ 到真实表中。如果真实表定义为NOLOGGING,追加提示将告诉它不要生成重做。
Why a bulk insert rather than a regular insert ?
If it is to avoid generating redo log entries, your best best is a conventional insert into a global temporary table [which doesn't generate redo because, since it is temporary, it never needs to be recovered]. Then, at the end, an INSERT/*+APPEND */ into the real table from the temporary table. If the real table is defined as NOLOGGING, the append hint will tell it not to generate redo.
我一直在寻找类似的线索,但陷入了死胡同。我从 Microsoft 公司 ADO .NET 团队项目经理 Pablo Castro 的声明中了解到,SqlBulkCopy 包含在 ADO.NET 2.0 的 .NET Provider for SQL Server (SqlClient) 中。他们的 OracleClient 提供程序不支持批量复制。
I have been searching on similar lines, but hit a dead-end. I understand from a statement by Pablo Castro, Program Manager - ADO .NET Team of Microsoft Corp, that SqlBulkCopy is included in ADO.NET 2.0, in the .NET Provider for SQL Server (SqlClient). They do not support bulk-copy in their OracleClient provider.
尽管问题提出已经过去了 9 年,但我认为正确的答案是(它对我有用)
despite 9 years have passed since the question has been made, I think the correct answer is (it worked for me)