【问题标题】:Using different version of ODAC to connect to Oracle使用不同版本的 ODAC 连接 Oracle
【发布时间】:2018-01-02 01:26:03
【问题描述】:

目前我正在处理一个项目,我们最近在测试服务器上将我们的 Oracle 版本从 11g 升级到 12c,以及我的本地开发设置。

在本地设置升级后,我升级了我的 ODAC(主要用于 Oracle.DataAccess.dll)以使用 12c 32 位版本。在我终于能够重新连接我的数据库之前,我经历了一些试验和错误,以及卸载和重新安装 ODAC。

我们现在正在考虑更新测试服务器的 ODAC。我昨天执行了安装,就像我的本地一样,我无法连接到数据库。

我已经将 tnsnames.ora 文件放到了合适的位置,这个文件只是原始文件的副本。我使用了一个测试程序来确定我是否可以打开一个连接,我可以使用新的 Oracle.DataAccess.dll。但是,当我尝试将其导入主站点时,我们无法连接。即使在我删除原始引用之后也会出现这种情况,将新的引用添加到指向 Oracle.DataAccess.dll 的位置。

我的一位同事提到,我们拥有什么版本的 ODAC(11g 或 12c)并不重要,11g 版本应该能够与 12c DB 连接仍然没有问题。我对此有点疑问,因为他过去曾在其他问题上发表过此类声明,而且他同意我们最初需要升级 ODAC。

这是真的吗?如果没有,除了卸载并重新安装之外,我可以采取任何步骤来解决问题吗?不用这么费劲,哈哈。

更新: 我已经确认我的同事是正确的,在 12c Oracle DB 上使用 11g ODAC 确实有效。但是,大声笑,在我与他进一步讨论之前,他就卸载了它,所以是的......

即使在删除 11g 的 ODAC 后,我仍然发现类似的问题。我的同事还清理了包含一些 11g 引用的注册表条目,但我们仍然遇到了问题。

更新(2017 年 8 月 8 日): 这个问题终于搞清楚了。我安装的 12c ODAC 与我在服务器上使用的 Visual Studio 版本(VS 2012)不兼容。在查看了 ODAC 的要求后,我发现了这一点,并且对这一认识翻了个白眼。我们卸载了 12c ODAC 并重新安装了 11g ODAC。现在一切正常。

我已经要求升级 VS,以便将来我们可以使用兼容的版本。是的,这不太可能发生,哈哈……

【问题讨论】:

  • 那么这里有什么问题?

标签: c# oracle11g oracle12c odac


【解决方案1】:

问题的答案是 VS 2012 和 12c ODAC 之间的兼容性。在重新阅读了 12c ODAC 的规范后,我发现我们服务器上的 Visual Studio 版本没有被涵盖。我们有 VS 2012,ODAC 不会返回到该版本(至少对于我们的 ODAC 发行版而言),因此出现了问题。

找到这一点后,我们又回到了 11g ODAC,它仍然适用于 12c DB。

【讨论】:

    猜你喜欢
    • 2016-05-10
    • 2019-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-04
    相关资源
    最近更新 更多