【问题标题】:Oracle Client and ODP.NET version compatibilityOracle 客户端和 ODP.NET 版本兼容性
【发布时间】:2020-02-04 18:39:08
【问题描述】:

我们已将 Oracle 升级到 19C,并将 Oracle.ManagedDataAccess 包升级到 19.6。但是,当我们尝试在 Oracle 数据库 12 上打开我们的应用程序时,它会显示错误,因为某些机器仍然具有 Oracle 12(旧)数据库。 有人可以与 Oracle 客户端分享 Oracle 数据提供程序 (ODP.Net) 的兼容性详细信息吗?

【问题讨论】:

  • 看看这个:Client / Server Interoperability Support Matrix for Different Oracle Versions 如果它们不兼容,我真的很惊讶,你得到的错误信息是什么?
  • @WernfriedDomscheit 感谢您的及时回复,我查看了提供的链接,但它询问的是我没有的“支持标识符”。我收到错误消息:“错误描述是 ORA-12154:TNS:无法解析指定的连接标识符”
  • Oracle.ManagedDataAccess 不需要oracle客户端。只是 ODAC

标签: oracle oracle12c odp.net oracle19c oracle.manageddataaccess


【解决方案1】:

错误消息并不表示任何不兼容。看起来 Oracle.ManagedDataAccess 驱动程序找不到您的 tnsnames.ora 文件

看看Oracle Data Provider for .NET, Managed Driver Configuration

  • 您是否定义了TNS_ADMIN 环境变量?

  • 您是否在注册表中分别定义了TNS_ADMIN HKEY_LOCAL_MACHINE\SOFTWARE\Oracle\OraClient19Home1HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Oracle\OraClient19Home1_32bit?

    文档指出未读取注册表,但对于版本 19,我不确定

  • 您是否在 .NET 配置文件中定义了 TNS_ADMIN

    最简单的设置方法是OraProvCfg.exe 工具。会是这样的:

对于 64 位:

c:\oracle\product\12.1\Client_x64\ODP.NET\bin\4\OraProvCfg.exe /action:config /product:odpm /frameworkversion:v4.0.30319 /providerpath:C:\oracle\product\12.1\Client_x64\odp.net\managed\common\Oracle.ManagedDataAccess.dll /set:settings\TNS_ADMIN:C:\oracle\network\admin 

对于 32 位:

c:\oracle\product\12.1\Client_x86\ODP.NET\bin\4\OraProvCfg.exe /action:config /product:odpm /frameworkversion:v4.0.30319 /providerpath:C:\oracle\product\12.1\Client_x86\odp.net\managed\common\Oracle.ManagedDataAccess.dll /set:settings\TNS_ADMIN:C:\oracle\network\admin 

【讨论】:

  • 我已经尝试了上述所有选项,但没有奏效。仅供参考-如果我将 Oracle.ManagedDataAccess 包从 19.6 降级到 12.2,那么它可以在 Oracle 数据库 12c 上运行,但在 Oracle 数据库 19c 上无法运行
  • .NET 配置文件怎么样? TNS_ADMIN 条目是特定于版本的。
  • 是的,我也在 .Net 配置文件中定义了 TNS_Admin。
  • 您是否使用 Oracle 名称服务器的别名解析(即使用 ldap.ora)?
猜你喜欢
  • 2013-05-31
  • 2011-08-25
  • 1970-01-01
  • 1970-01-01
  • 2010-10-14
  • 1970-01-01
  • 1970-01-01
  • 2020-01-21
  • 1970-01-01
相关资源
最近更新 更多