C# 调用无效包中的过程时发生Oracle Odp.Net未报告的错误
我刚刚经历了最糟糕的维护噩梦:一个无声的错误 我在自定义包中使用Odp.Net调用一个过程,该过程调用以静默方式失败,没有引发任何异常(使用逐步调试和catch all子句进行验证)。经过多次搜索,我注意到包无效(服务器上出现了一些故障),在重新编译包后,一切都恢复正常(调用代码正确且未修改) 因为在Oracle中很容易意外地使包无效,所以我需要捕捉这种错误,如果只是为了调试而记录它们的话 对于MS的System.Data.OracleClient,在本例中引发了OracleException,是否有任何方法可以获得与Oracle的Oracle.DataAccess类似的行为?某种类型的sqlnet.ora参数?我在网上没有发现类似的问题C# 调用无效包中的过程时发生Oracle Odp.Net未报告的错误,c#,oracle,exception,odp.net,C#,Oracle,Exception,Odp.net,我刚刚经历了最糟糕的维护噩梦:一个无声的错误 我在自定义包中使用Odp.Net调用一个过程,该过程调用以静默方式失败,没有引发任何异常(使用逐步调试和catch all子句进行验证)。经过多次搜索,我注意到包无效(服务器上出现了一些故障),在重新编译包后,一切都恢复正常(调用代码正确且未修改) 因为在Oracle中很容易意外地使包无效,所以我需要捕捉这种错误,如果只是为了调试而记录它们的话 对于MS的System.Data.OracleClient,在本例中引发了OracleException,
使用Oracle11R2服务器,最新的Oracle Win32客户端。Net3.5。这是提供商的问题。在类似的异常之后,我更改了ODP.NET。现在我正在使用并建议您做同样的事情 您是否尝试过启用odp.net跟踪日志
<oracle.dataaccess.client>
<settings>
<add name="TraceFileName" value="c:\odpnet1.trc"/>
<add name="TraceLevel" value="63"/>
</settings>
</oracle.dataaccess.client>
也许这会给我们带来一些启示?遗憾的是,我的客户非常保守。我知道这些库,我更喜欢纯Oracle解决方案。Michel,我不确定您是否会喜欢,但我使用odp.net,如果我尝试调用无效的包,我确实会引发异常-我在.net中看到的异常与Oracle中的异常一致。我们调用的存储过程几乎总是有一个out参数,我不知道这是否会有区别(因为它可能会迫使odp.net进行一些后处理,这可能会导致它抛出异常)