ODP.NET OracleException.ErrorCode 和 OracleException.Number 的区别?
ODP.NET difference between OracleException.ErrorCode and OracleException.Number?
要将旧的 VB.NET 应用程序从 depricated System.Data.OracleClient
Microsoft 提供商转换为 ODP.NET Oracle.ManagedDataAccess.dll
(版本 4.122.1.0),我想知道是否有两者之间的差异:
Oracle.ManagedDataAccess.Client.OracleException.ErrorCode
"Gets the HRESULT of the error"
对比
Oracle.ManagedDataAccess.Client.OracleException.Number
"Specifies the Oracle error number"
旧代码引用了 System.OracleClient.OracleException.Code
,当错误为 "ORA-06550" 时结果为 6550(注意:结果不是负值,例如 -6550)
我通过抛出一个唯一约束来测试这个"ORA-00001: unique constraint violated"
结果是:
ex.ErrorCode = -2147467259
ex.Number = 1
因此,我会将对 System.OracleClient.OracleException.Code
的引用替换为 Oracle.ManagedDataAccess.Client.OracleException.Number
要将旧的 VB.NET 应用程序从 depricated System.Data.OracleClient
Microsoft 提供商转换为 ODP.NET Oracle.ManagedDataAccess.dll
(版本 4.122.1.0),我想知道是否有两者之间的差异:
Oracle.ManagedDataAccess.Client.OracleException.ErrorCode
"Gets the HRESULT of the error"
对比
Oracle.ManagedDataAccess.Client.OracleException.Number
"Specifies the Oracle error number"
旧代码引用了 System.OracleClient.OracleException.Code
,当错误为 "ORA-06550" 时结果为 6550(注意:结果不是负值,例如 -6550)
我通过抛出一个唯一约束来测试这个"ORA-00001: unique constraint violated"
结果是:
ex.ErrorCode = -2147467259
ex.Number = 1
因此,我会将对 System.OracleClient.OracleException.Code
的引用替换为 Oracle.ManagedDataAccess.Client.OracleException.Number