我在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}}。
我已经阅读了几篇文章,说停止服务会导致我的服务正在运行。
可能是什么问题???
答案 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(清理,配置检查侦听器,重启服务)。然后我的努力真的得到了回报。
这是截图
答案 1 :(得分:0)
通常,我建议使用不同于您通常使用的凭据安装Oracle服务器。 Oracle服务器(在Windows下)使用一些环境变量; ODP.NET也是如此。虽然您无法在用户配置文件中的不同env变量集之间轻松切换,但您可以为安装和/或运行Oracle服务器的(不同)用户分配不同的env var值。
如果您已经安装了Oracle服务器(我怀疑是您的情况),请尝试:
ORACLE_HOME
,ORACLE_SID
,NLS_LANGUAGE
和PATH
个环境变量(不是整个Windows的全局!),以指向您的Oracle服务器。 OracleServiceSOMETHING
和Oracle SOMETHING VSS Writer Service
以及OracleJobSchedulerSOMETHING
和OracleOraDb11g_home1TNSListener
的凭据。 (... SOMETHING
通常是您实例的名称)ORACLE_HOME
和PATH
env var分别指向您的ODP.NET根目录和root \ bin文件夹;将ORACLE_SID
和NLS_LANGUAGE
变量设置为您需要的任何值。不要忘记备份数据库......万一发生了可怕的事情。