相信作为ORACLE数据库的开发人员没有少碰到“ORA-12154: TNS: 无法解析指定的连接标识符”,今天我也又碰到了类似的情况,将我的解决方法进行小结,希望能对碰到同样问题的友人们提供帮助。
问题场景描述:
服务器端版本:oracle 10.2.0.10
客户端版本:oracle 10.2.0.10
客户端开发工具:PL/SQL Developer
通过客户端来连接服务器,其主要文件就是通过客户端的tnsnames.ora来配置,在原文件的基础上增加:
SID别名 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = SERVER_IP)(PORT = 1521))
)
(CONNECT_DATA =
(SID = SID_NAME)
)
)
例:
dev_db =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.168.10.5)(PORT = 1521))
)
(CONNECT_DATA =
(SID = ora10)
)
)
通过PL/SQL Developer连接dev_db时,报“ORA-12154: TNS: 无法解析指定的连接标识符”。(这个问题以前也碰到过,但解决方法不太一样,因具体的问题不太一样。)
我将自己知道的一些解决方法说一下:
1.先检查服务器端的监听服务是否打开,如果没有打开请启动其监听
客户端:tnsping <tns_name>
服务器Linux下:
#>lsnrctl status 查看监听状态
#>lsnrctl start 启动监听
2.通过Sql Plus连接一下试试,如果Sql Plus连接能成功,那就说明你的tnsnames.ora内容有错误
我的问题就在别名dev_db前面有一个空格,这个可以通过文本编辑器(Edit Plus,UE等)来查看是否有空格,只要有空格那就肯定是不行的,而且如果那段内容是出现在文件的中间的话,将导致该文件里所有相应的连接别名都不成功,如果是在最后面就只有其自身连接别名不能成功,其他连接别名还是能连接成功。(注:我的tnsnames.ora配置了多个数据库实例的连接,所有才有多个连接别名。)
如:
空格dev_db =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.168.10.5)(PORT = 1521))
)
(CONNECT_DATA =
(SID = ora10)
)
)
3.如果确保你的tnsnames.ora内容没有错误,那请将%ORACLE_HOME%\product\10.2.0\db_1\NETWORK\ADMIN目录下的所有文件删了,然后重新连接,一般就能解决了。
说明一下:那个目录里的文件是在你建立连接的时候动态生成的,不要怕删了会有问题
4.进入PLSQL Developer的主界面,在登录界面选择取消即不登录进入主界面,然后选择菜单Tools(工具)-Preferences(首选项),在设置窗口中,选择Oracle-Connection(连接),对应设置窗口中,找到Oracle Home(Oracle主目录),选择你本地所安装客户端的版本,保存设置,然后重新启动PLSQL Developer,这时就可以正常登录了。
如果您还碰有ORA-12154:错误代码的其他原因和有其他的解决方法,请跟贴评论我会加以完善这篇文章的!谢谢!
装了解决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》PREFERENCES...设置,在ORACLE下的CONNECTION中,将ORACLE HOME和OCI LIBIARY设为空即自动检测。连接正常,问题解决。
二、应用程序中报错:
一个很难想到的引起ORA-12154的原因
使用OracleClient.OracleConnection时(我连的是Oracle 11g,其他版本未知),如果你的执行目录太长或者有括号等(未考察有些什么符号),那么即使你的服务名是对的,也会引起ORA-12154问题“TNS: 无法处理服务名”,当出现这个问题时,请也考虑这个原因。
分享到:
相关推荐
ORA-12154: TNS: 无法解析指定的连接标识符的解决方法
解决ORACLE TNS: 无法解析指定的连接标识符; 里面有步骤
ORA-12154_TNS无法解析指定的连接标识符
ORA-12154:TNS:无法解析指定的连接标识符 ORA-12154:TNS:无监听程序 错误分析一、PL/SQL 客户端登录到数据库,如果配置错误会有以上错误,如下图。 这个错误主要是pl/sql客户端的tnsnames.ora配置错误,或者是输入 ...
相信使用过Oracle数据库的人一定碰到过“ORA-12154: TNS: 无法解析指定的连接标识符”错误,我在此做一个小小的总结。 在程序中连接Oracle数据库的方式与其他常用数据库,如:MySql,Sql Server不同,这些数据库可以...
在使用Oracle数据库进行数据导入导出操作时,常常会遇到ORA-12154错误,即TNS:无法解析指定的连接标识符。这个问题主要由两个原因造成:一是Oracle服务器未安装正确,二是TNS配置文件未正确设置。以下是针对这两种...
在使用Oracle数据库时,经常会遇到一个常见的错误提示:“ORA-12154: TNS: 无法解析指定的连接标识符”。此错误通常发生在尝试从客户端连接到服务器端数据库时,表明客户端无法正确识别或解析连接字符串中的指定...
ORA-12154_TNS无法解析指定的连接解决方法 包含多钟可能的情况的解决方式。
### Oracle导dmp出现文件ORA-12154 TNS 无法解析指定的连接标识符解决方案 #### 问题背景 在进行Oracle数据库的操作时,经常会遇到“ORA-12154 TNS 无法解析指定的连接标识符”这样的错误提示。此问题通常发生在...
"ORA-12154:TNS:无法解析指定的连接标识符"是一个常见的Oracle数据库连接错误,通常发生在尝试连接到Oracle数据库时。这个错误表明客户端无法找到或解析网络服务名(Net Service Name)来建立与服务器的连接。下面...
plsql连接oracle数据库报ora 12154错误 今天遇到一个问题,使用sqlplus能够连接到远程的数据库,但是使用plsql却连接不上,报错”ORA-12154: TNS: 无法解析指定的连接标识符” 解决方法如下: 1.先检查服务器端的...
错误信息“ORA-12154: TNS: 无法解析指定的连接标识符”通常出现在尝试通过ASP.NET应用程序或其他.NET环境下的工具(如ODT for VS.Net)连接Oracle数据库时。这会影响到应用程序正常运行,因为无法建立有效的数据库...
使用PLSQL Developer连接Oracle数据库,用户可以享受到以下功能和优势: 1. **代码编辑器**:PLSQL Developer提供了集成的代码编辑器,支持语法高亮、自动完成、代码折叠和错误检查,大大提高了编写PL/SQL代码的...
64位window系统连接oracle会报错ORA-12154: TNS: 无法解析指定的连接标识符 截图操作64位系统VS连接ORACLE
今天碰到一个比较奇怪的问题: 在客户端上使用sqlplus用普通用户可以登录,但是system以及sys用户均无法登录,提示ORA-12154: TNS: 无法解析指定的连接标识符 SQL> conn system@webdata 输入口令: ERROR: ORA-12154: ...