oracle提示ORA-12154:TNS:无法解析指定的连接标识符OCIEnvCreat。。。

合肥学院学报
voip业务oracle提⽰ORA-12154:TNS:⽆法解析指定的连接标识符
OCIEnvCreat。。。
备忘,在⽹上搜索到⽅法,但还没有尝试过,先放在这⾥备忘⼀下。
前⼏天,同事装上oracle的客户端,在ASP.Net下⾯怎么连都连不到oracle数据库(操作系统是XP,报错不到OIC.DLL,之前我也遇到过,重装了⼀下客户端就好了,我⽤的是2000 professional的系统)。后来我到Oracle官⽅⽹站上寻解决⽅案,下载了Oracle Developer Tools for Visual Studio .NET 10.1.0.4.0 (ODT for VS.Net),把它装上之后,可以在中浏览oracle数据库,估计可以浏览oracle数据库了,应该可以操作oracle数据库,⿎吹通事把ODT for VS.Net装上之后,果然他的机器上的ASP.Net程序可以正常连接oracle了,就是这个问题,昨天装了整整⼀天的系统。
今天上午他的问题刚刚解决,下午我这边就出了问题,连接oracle时报错,信息如下"ORA-12154: TNS: ⽆法解析指定的连接标识符", 到google上到处搜,看到⼀些英⽂的⽹站的答案是修改a就可以修复连接。检查了⼀下也没发现这个⽂件的问题。
估计是安装ODT for VS.Net之后,OracleHome和OracleSID有重复或者⽆效, 到注册表中⼀看,果然是有问题,发现
HKey_LocalMachine\Software\Oracle下⾯的Oracle_Home路径被改成了E:\program files, 我的oracle是装在E:\oracle⽬录的,于是把这个改了,再试,系统也重起了,依然⽆效,后来想⼲脆把ODT 给删了,于是到控制⾯板Oracle Developer Tools, 怎么都不到,到是到了ODP for .Net,把这个给卸载了,以前装的Oracle Developer Tools⽬录(E:\Oracle\product\10.1.0\Client_1)依然没有被删除,于是⼿动删除这个⽬录,提⽰OCI.dll正在使⽤,⽆法删除,再尝试把这个⽬录给重命名了,居然命名成功。于是重启系统,再运⾏Asp.Net的客户端,成功连接Oracle数据库。
总结⼀下,装了解决Oracle Developer Tools之后,出现“ORA-12154: TNS: ⽆法解析指定的连接标识符”报错的解决⽅法如下:
1.检查注册表,HKey_LocalMachine\Software\Oracle下⾯的Oracle_Home,若不对,修改成正确的;
2.卸载ODP for .Net (或者卸载ODT for .Net, ODT中包含ODP, ODT 是VS.Net的⼀个集成插件,⽤于连接和浏览oracle数据库,并且提供对oracle数据库的拖拽操作,类似VS.Net对于SQL Server的资源管理器);
3.如果ODT for .Net的⽬录依然存在,删除或者重命名此⽬录;
然后重起系统,重新连接ASP.Net程序,如果还有同样的错误,看着办吧,我建议重装Oracle吧。
例外管理分析原因:系统原来装的是ORACLE 10G 10.1.0,卸载后还没重启就装上10.2.0,结果先是起不来,竟然还是指向10.1.0的位置,当然不能启动了。
处理过程:
1、查注册表,将指向新的位置,重启服务,OK;
2、PL/SQL DEVELOPER还是连接不了,其它⽅式都正常。将原先安装在其它逻辑盘的ODP for .Net 卸载重装到与ORACLE 10.2.0同⼀位置。重启系统,DEVELOPER还是报错,不过些时报错提⽰信息为空。
3、因为DEVELOPER设置有更改后,进⼊菜单TOOLS》设置,在ORACLE下的CONNECTION中,将ORACLE HOME和OCI LIBIARY设为空即⾃动检测。连接正常,问题解决。
⼆、应⽤程序中报错:
⼀个很难想到的引起ORA-12154的原因
钢段使⽤OracleClient.OracleConnection时(我连的是Oracle 9i,其他版本未知),如果你的执⾏⽬录太长或者有括号等(未考察有些什么符号),那么即使你的服务名是对的,也会引起ORA-12154问题“TNS: ⽆法处理服务名”,当出现这个问题时,请也考虑这个原因。
另外,如果出现OCIEnvCreate 失败, 返回代码为-1,但错误消息⽂本不可⽤
1、配置a。配置⽅法⽹上很多。
2、完善环境变量配置。环境变量的配置⽹上也很多,这⾥不列举了
3、最重要的⼀点,注册表加⼊下⾯键值
大连交通大学学报
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment]
重建人类社会"LD_LIBRARY_PATH"="F:\*\bin"
"NLS_LANG"="AMERICAN_AMERICA.ZHS16GBK"
"TNS_ADMIN"="F:\*\bin"
具体路径根据实际情况修改。注册表加⼊下⾯键值后,重新调试程序,顺利通过。
完成了以上⼏个步骤,发现我的oracle还是连接不上。
通过⼀篇⽂章我突然意识到,是不是我的iis没有装全?于是重新安装iis,根据
中显⽰的图⽚完成了iis的功能扩展。怀着激动的⼼情,我重新打开了vs2005并运⾏程序。还是不⾏……
最后⼏乎绝望的使⽤管理员重新启动vs2005,然后点击调试。
居然通了!疯狂欢呼~ 我费了⼤半天完成这个oracle的调试⼯作。终于还是没有⽩费。早知道这么⿇烦就不傻傻的卸掉oraclexe版了,也不装win7 64位了,也不装win7了。以后开发还是⽤xp吧

本文发布于:2024-09-21 20:29:41,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/476354.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:连接   数据库   系统   监听器   问题   位置   标识符
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议