OracleBulkCopy 自动提交
C#.Net 我正在使用 OracleBulkCopy 将数据复制到声明为“提交时删除”的全局临时表。所以当我使用 OracleBulkCopy.WriteToServer(DataReader) 时。它提交了,我正在丢失所有数据。如何防止这种情况发生?
C#.Net I am using OracleBulkCopy to copy data to global temp tables that are declared as Delete on commit. So when I use OracleBulkCopy.WriteToServer(DataReader). It commits and I am losing all the data. How to prevent this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
OracleBulkCopy 似乎不支持事务。使用自动提交从来都不是明智的做法,而是以更受控的方式进行复制,例如使用批量插入。
OracleBulkCopy seems not to support transactions. Auto commit is never smart to use, copy in a more controlled way for example using bulk inserts.
无论如何,在使用 .NET 时,将全局临时表声明为“提交时删除”并不是一个好主意。
更好的做法是在做任何你想做的事情之前从 gtt 中删除,并在提交后让它保持原样。调试也变得更加容易。
It is no good idea to declare global temporary tables as Delete on commit when using .NET anyway.
Better practice is to delete from gtt before doing whatever you want and let it as it is after commit. Debugging becomes easier too.