【发布时间】: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