我的软件需要同时在Oracle数据库中插入大约5000条记录,所以我使用OracleBulkCopy来做到这一点.我的表使用触发器自动增加主键.但是OracleBulkCopythrow“ORA-26086:直接路径不支持触发器”异常.
那么,我怎样才能使用OracleBulkCopy和自动增加主键?
解决方法
此类方案的常见解决方案是将批量加载执行到临时表中;一个没有触发器等的单独表,您可以快速将数据放入其中.这意味着您可以在带宽和往返性能方面获得批量加载的优势.然后;当且仅当数据在登台表中时,使用常规SQL(可能是插入)将数据从登台表移动到实际的事务表中.这是完全本地的数据库服务器,所以非常快.
这样做的一个很好的优点是,它意味着*在您进行批量加载时,您不会影响任何真实用户 – 因为真正的用户只会查看事务表 – 我们还没有接触过.