2

我使用批量复制上传DataTable到 Oracle 数据库。我想知道在数据库中插入了多少行。最近我在为 SQL Server 做同样的事情,我发现:

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

return (int)rowsCopiedField.GetValue(bulkCopy);

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

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

4

1 回答 1

0

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

参考:在 PL/SQL 中管理游标请查找“%ROWCOUNT 属性:到目前为止受影响的行数?”

于 2014-02-18T19:37:08.460 回答