目前我正在开展一个项目,我们最近在我们的测试服务器上将我们的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引用的注册表条目,但是,我们仍有问题。
更新(8/8/2017): 这个问题早已被弄清楚了。我安装的12c ODAC与我在服务器上使用的Visual Studio版本(VS 2012)不兼容。在查看了ODAC的要求之后,我发现了这一点,并将目光投向了这一认识。我们卸载了12c ODAC并重新安装了11g ODAC。现在一切正常。
我已经要求升级VS,以便将来我们确实可以使用兼容版本。是的,不太可能发生这种情况,大声笑......
答案 0 :(得分:1)
问题的答案是VS 2012和12c ODAC之间的兼容性。我在重新阅读12c ODAC的规格后发现我们服务器上的Visual Studio版本没有被覆盖。我们有VS 2012,ODAC没有回到(至少对我们的ODAC版本),因此问题。
找到这个之后,我们回到了11g ODAC,它仍然适用于12c DB。