0

我已经在我的 Windows 7 Ultimate 中安装了 Oracle Database 11.2.0.1 Win64 和 Client 11.2.0.1 Win64,我能够使用 Sql*plus 访问 Oracle 数据库sqlplus / as sysdba。之后,我ODTwithODAC1120320_32bit在 Visual Studio 2010 中使用 C# 安装 ODP.NET 以与 Oracle 一起使用。当我尝试使用 ODP 添加到 Oracle 数据库的连接时,它会弹出ora-12560 :TNS: protocol adapter error,甚至在使用SqlPlus / as sysdba.

我读过几篇文章说停止服务会导致但我的正在运行。

可能是什么问题呢???

4

2 回答 2

0

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

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

  1. 在你的 Windows 中创建一个新用户,让他有足够的特权。(“管理员”权限就可以了。:-))
  2. 以新用户身份登录。
  3. 为该特定用户设置ORACLE_HOMEORACLE_SID和环境变量(NLS_LANGUAGE而不是整个 Windows 的全局变量!)以指向您的 Oracle 服务器。PATH
  4. 以原始用户身份登录。
  5. 启动服务管理控制台(“services.msc”)。
  6. OracleServiceSOMETHING将andOracle SOMETHING VSS Writer ServiceOracleJobSchedulerSOMETHINGand的“登录”凭据更改为OracleOraDb11g_home1TNSListener您刚刚创建的新用户+密码。(...SOMETHING通常您的实例的名称在哪里)
  7. 停止所有 Oracle 服务。
  8. 设置ORACLE_HOMEPATHenv var 分别指向您的 ODP.NET root 和 root\bin 文件夹;将ORACLE_SIDand NLS_LANGUAGEvars 设置为您需要的任何值。
  9. 启动所有 Oracle 服务。(在这一刻之后,他们应该在自己的凭据下运行。)
  10. 让我们祈祷它有效。

如果这种情况不起作用,我自己也必须即兴发挥。但到目前为止,我已经以这种方式在同一台机器上成功运行了两台 Oracle 服务器和一个 Oracle 客户端,没有任何问题,所以我希望它也适用于你。如果没有,那么仍然可以选择完全重新安装 Oracle 服务器。

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

于 2014-06-12T12:01:47.647 回答
0

我在 VS 2010 中使用服务器资源管理器连接到 Oracle 11g 时遇到的主要问题不是 ODP 与 Oracle 数据库的版本兼容性,而是它的架构。出现此类错误后,我使用deinstall.bat文件卸载了 Oracle Database 11g,然后清理了注册表项 ../Software/Oracle 并清理了临时文件,并重新启动了系统。然后安装 Oracle 11g Database x32 数据库服务器,ODP.NET x32,检查 Env vars。第一个成功是我能够使用SQL*Plus. 之后启动VS 2010并尝试连接......连接!wow 曾在 VS IDE 中工作过。我非常开心 :)

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

这是一个截图在此处输入图像描述

于 2012-09-27T13:57:38.640 回答