ora-12560:TNS:安装ODP.NET后的协议适配器错误

时间:2012-09-26 06:04:41

标签: oracle oracle11g

我在Windows 7旗舰版中安装了Oracle Database 11.2.0.1 Win64和Client 11.2.0.1 Win64,并且我能够使用Sql * plus访问Oracle数据库 使用sqlplus / as sysdba。之后我安装了ODP.NET ODTwithODAC1120320_32bit以在Visual Studio 2010中使用C#与Oracle合作。当我尝试使用ODP添加到Oracle数据库的连接时,它会弹出ora-12560 :TNS: protocol adapter error,甚至在使用{登录Oracle时{1}}。

我已经阅读了几篇文章,说停止服务会导致我的服务正在运行。

可能是什么问题???

2 个答案:

答案 0 :(得分:0)

我遇到的主要问题在VS 2010中使用Server explorer连接到Oracle 11g并不是ODP与Oracle数据库的版本兼容性,而是它的体系结构。出现此类错误后,我使用 deinstall.bat 文件卸载了Oracle Database 11g,然后清理了Registry Key ../Software/Oracle并清理了临时文件,重新启动了系统。然后安装了Oracle 11g Database x32数据库服务器,ODP.NET x32,检查了Env vars。 第一次成功是我能够使用SQL*Plus连接到数据库。之后开始VS 2010并尝试连接.....已连接!哇在VS IDE中工作过。我很高兴:)

我记得有多少次我重新安装了Oracle(清理,配置检查侦听器,重启服务)。然后我的努力真的得到了回报。

这是截图enter image description here

答案 1 :(得分:0)

通常,我建议使用不同于您通常使用的凭据安装Oracle服务器。 Oracle服务器(在Windows下)使用一些环境变量; ODP.NET也是如此。虽然您无法在用户配置文件中的不同env变量集之间轻松切换,但您可以为安装和/或运行Oracle服务器的(不同)用户分配不同的env var值。

如果您已经安装了Oracle服务器(我怀疑是您的情况),请尝试:

  1. 在Windows中创建一个新用户,让他获得足够的特权。 ("管理员"权利会很好。: - ))
  2. 以新用户身份登录。
  3. 为该特定用户设置ORACLE_HOMEORACLE_SIDNLS_LANGUAGEPATH个环境变量(不是整个Windows的全局!),以指向您的Oracle服务器。
  4. 以原始用户身份登录。
  5. 启动服务管理控制台(" services.msc")。
  6. 更改"登录"您刚刚创建的新用户+密码的OracleServiceSOMETHINGOracle SOMETHING VSS Writer Service以及OracleJobSchedulerSOMETHINGOracleOraDb11g_home1TNSListener的凭据。 (... SOMETHING通常是您实例的名称)
  7. 停止所有Oracle服务。
  8. 设置ORACLE_HOMEPATH env var分别指向您的ODP.NET根目录和root \ bin文件夹;将ORACLE_SIDNLS_LANGUAGE变量设置为您需要的任何值。
  9. 启动所有Oracle服务。 (在此之后,他们应该在自己的凭据下运行。)
  10. 让我们祈祷它有效。
  11. 如果这种情况不起作用,我自己也必须即兴创作。但到目前为止,我已经成功地在同一台机器上运行了两台Oracle服务器和一台Oracle客户端,没有任何问题,所以我希望它也适合你。如果没有,那么仍然可以选择完全重新安装Oracle服务器。

    不要忘记备份数据库......万一发生了可怕的事情。