Oracle ODP.NET BulkCopy 到临时表问题
我正在使用 ODP.NET 中的 BulkCopy 方法将 DataTable 插入到临时表中。 如果临时表很简单(没有触发器或索引),它可以工作,很好,但是一旦我创建索引或触发器,我就会在 BulkCopy.WriteToServer() 方法中收到“通信通道上的文件结束”错误。 知道我该如何解决这个问题吗?
谢谢你!
I'm using BulkCopy method from ODP.NET to insert a DataTable to a temporary table.
If the temporary table is simple (no triggers or indexes) it works, fine, but as soon as I create an index or trigger, i get the "End-of-file on communication channel" error at BulkCopy.WriteToServer() method.
Any idea how could i fix this?
Thank you!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
如果出现 ORA-03113: 通信通道上的文件结尾,则专用于会话的服务器进程会因 bug 或错误而终止。客户端进程检测到服务器进程丢失并引发 ORA-03113。服务器进程已将其错误消息写入警报文件。检查服务器上的此文件以找出问题所在。您可能需要请您的 DBA 为您执行此操作。
问候,
抢。
In case of an ORA-03113: end-of-file on communication channel, the server process dedicated to your session died because of a bug or error. The client process detects that the server process is missing and raises the ORA-03113. The server process has written its error message to the alert file. Check this file on the server to find out what went wrong. You may have to ask your DBA to do this for you.
Regards,
Rob.
我同意上面的海报。检查您的警报日志文件。如果您在那里看到 ORA-600,您(或您的 DBA)应该联系 Oracle 支持,因为您可能需要补丁。
克里斯蒂安·谢伊
甲骨文
I concur with the posters above. Check your alert log file. If you see an ORA-600 there, you (or your DBA) should contact Oracle support because you may need a patch.
Christian Shay
Oracle
Oracle 中的临时表几乎总是一个坏主意。您能否重新设计程序以使用常规表或 PL/SQL 集合?
Temporary tables in Oracle are almost always a bad idea. Can you re-design the program to use either a regular table or a PL/SQL collection?
我已经就此事联系了 Oracle。显然这是一个错误,在 11g 中已修复。他们现在正在尝试发布补丁
I've contacted Oracle about this. Apparently it's a bug, that was fixed in 11g. They're now trying to release a patch