C#操作 Oracle 的时候,批量导入是个绕不开的需求。尤其你遇到几十万行甚至上百万行的数据,逐条插入简直让人抓狂。这时候,OracleBulkCopy就挺好用的,写法也不复杂,用好了效率杠杠的。

Oracle 的 ODP.NET 驱动是关键,你得先装上它(可以通过 NuGet 装Oracle.DataAccess.Client),不然 C#连 Oracle 都连不上。连接字符串那块也挺有讲究,记得把HOSTSERVICE_NAME写对,不然老是报错。

连接成功之后,接下来就可以搞个OracleCommand准备 SQL 语句了,但真正的主角是OracleBulkCopy。这个类专门为批量插入设计的,性能比普通插入强不少,关键是简单好用。

数据源可以从DataTable来,也可以是CSVExcel转成DataTable,都行。设置一下ColumnMappings,一一对应目标表的字段就行,别弄错顺序就好。

一步就是bulkCopy.WriteToServer(dt),直接把数据全推进去,一次搞定,响应也快。别忘了Close()一下连接,避免资源泄漏。

性能优化方面,设置 BatchSize挺重要的,别设太小,不然效果不;也别太大,容易内存爆掉。还有就是事务控制,出错了能回滚,数据更安全。

哦对了,如果你还没接触过 ODP.NET,可以看看这几个文档:

如果你项目里有大量数据需要导进 Oracle,强烈建议试试这个方案,真的省事不少。