我刚刚遇到了最糟糕的维护噩梦:一个无声的错误。
我在自定义包中使用Odp.Net调用过程,并且过程调用无声地失败而没有抛出任何异常(使用逐步调试和catch all子句进行验证)。经过多次搜索后,我注意到Package无效(服务器上发生了一些事故),重新编译后,一切都恢复正常(调用代码是正确的,未经修改)。
由于在Oracle中意外地使包失效非常容易,我需要捕获这种错误,如果只记录它们进行调试。
使用MS的System.Data.OracleClient,在这种情况下抛出了OracleException,有没有办法在Oracle的Oracle.DataAccess中获得类似的行为?某种sqlnet.ora参数?我在网上的任何地方都没有发现类似的问题。
使用Oracle11R2服务器,最新的Oracle Win32客户端。 .NET3.5。
答案 0 :(得分:2)
您是否尝试过启用odp.net跟踪日志?
<oracle.dataaccess.client>
<settings>
<add name="TraceFileName" value="c:\odpnet1.trc"/>
<add name="TraceLevel" value="63"/>
</settings>
</oracle.dataaccess.client>
也许它会有所启发?
答案 1 :(得分:0)
这是提供商的麻烦。在类似的异常后我改变了ODP.NET。现在我正在使用dotConnect for Oracle并建议你做同样的事情。