如何通过oracleBulkCopy(ODP.NET)检查插入的行数

本文关键字:插入 检查 NET 何通过 oracleBulkCopy ODP | 更新日期: 2023-09-27 18:30:12

我用大容量拷贝将DataTable上传到Oracle数据库。我想知道数据库中插入了多少行。最近我为SQL Server做了同样的事情,我发现:

FieldInfo rowsCopiedField = typeof(SqlBulkCopy).GetField("_rowsCopied", BindingFlags.NonPublic | BindingFlags.GetField | BindingFlags.Instance);
return (int)rowsCopiedField.GetValue(bulkCopy);

它成功了(给我返回了正确的行数)。不幸的是,这对OracleBulkCopy不起作用。如何获取行数?

EDIT:使用OracleRowsCopied事件是没有意义的,因为它在NotifyAfter行数之后触发事件,这些行数被处理,而不是添加到数据库中。(根据Oracle文档。)

如何通过oracleBulkCopy(ODP.NET)检查插入的行数

使用Oracle,您可以使用%ROWCOUNT属性获取受上一条语句影响的行数。

参考:管理PL/SQL中的游标请查找"%ROWCOUNT属性:到目前为止影响了多少行?"