ODP.Net 数组绑定异常处理

Posted

技术标签:

【中文标题】ODP.Net 数组绑定异常处理【英文标题】:ODP.Net array binding exception handling 【发布时间】:2015-10-21 16:08:43 【问题描述】:

我正在使用这篇文章在 ODP.NET 中使用此指南来绑定数组

http://docs.oracle.com/html/E10927_01/featOraCommand.htm#i1007888

以及向下滚动时建议的异常处理。 我的问题是,ODP 没有完成对数组中所有值的 sql 语句的执行。它因发现的第一个错误而失败。所以 e.errors.Count 始终为 1 并设置为 0 的 ArrayBindIndex。这不是我所期望的。有没有其他人遇到过这个?任何帮助深表感谢。 TIA

【问题讨论】:

你试过 12.1 ODP.NET 吗? 11.1.0.6 很古老。 我没有。您认为这是 12.1 中修复的 ODP 错误吗?由于我们团队中所有应用程序的一致性原因,我可能无法升级。 oracle.com/technetwork/database/windows/newfeatures-084113.html 看看那个功能列表。我在第一个 12.1 版本中看到了与此相关的内容。可能值得一试。 【参考方案1】:

很确定这是假定的行为(所有 12.x 版本也是如此):当使用 ArrayBinding 时,它在逻辑上与为数组中的每个值顺序执行相同的语句相同。

如果条目 123 of 500 导致异常,则数据库将无法继续,因为它无法说出您的哪些数据已经中毒。它需要中止并将异常返回给您。

【讨论】:

以上是关于ODP.Net 数组绑定异常处理的主要内容,如果未能解决你的问题,请参考以下文章

PL/SQL 异常和错误处理

ODP.NET Oracle.ManagedDataAccess 导致 ORA-12537 网络会话结束文件

MultiTigger 绑定异常处理

MultiTigger 绑定异常处理

未处理的异常:在初始化绑定之前访问了 ServicesBinding.defaultBinaryMessenger

vue解析json对象取值异常处理