pl/sql developer 登陆时 出现"ORA-12154: TNS:无法解析指定的连接标 ”!我在cmd里就能连接上。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pl/sql developer 登陆时 出现"ORA-12154: TNS:无法解析指定的连接标 ”!我在cmd里就能连接上。相关的知识,希望对你有一定的参考价值。
在net manager里面测试也是连接成功!求助大侠,最好能说的具体点,我是新手
ORA-12154: TNS: 无法解析指定的连接标识符 问题相信作为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,这时就可以正常登录了。 参考技术A 我也是用的PL/SQL ,你用什么连接数据库?我的是oracle,如果你也是把你的TNS COPY到这个文件下oracle\ora92\network\ADMIN,我的ORACLE9.0.追问
我就是连接oracle 我是10g。我没明白您说的是怎么copy
追答那觉得是这个问题了,你把tnsnames.ora这个文件复制的admin这个文件下面就行了。tnsnames.ora这个文件就是连接服务器的地址 端口的文件
像这样orcl_md =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.6)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SID = orcl)
)
)
在PL/SQL 里的工具-》首选项-》连接里配置 参考技术C 1. A. 使用SID
a. 修改服务器上的listener.ora,增加SID项
即:在
SID_LIST_LISTENER =
(SID_LIST =
下,增加类似下面的内容:
(SID_DESC =
(SID_NAME = orcl)
(ORACLE_HOME = C:\oracle\product\11.2.0\dbhome_1)
(ENVS = "EXTPROC_DLLS=ONLY:C:\oracle\product\11.2.0\dbhome_1\bin\oraclr11.dll")
)
b. 在客户端的tnsnames.ora中
orcl_md =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.6)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SID = orcl)
)
)
2. 使用PL/SQL Developer连接OracleX64版本:
•1. 下载32位Oracle InstantClient,并展开到某目录,例如C:\instantclient-basic-nt-11.2.0.2.0;
•2. 将系统的tnsnames.ora拷贝到该目录下;
•3. 在PLSQL Developer中设置Oracle_Home和OCI Library:
ToolsàPreferencesàOracleàConnection:
Oracle_Home: C:\instantclient-basic-nt-11.2.0.2.0
OCI Library: C:\instantclient-basic-nt-11.2.0.2.0\oci.dll
•4. 在PLSQL Developer目录下编辑如下bat文件,替换其快捷方式,启动PLSQL Developer:
@echo off
set path=C:\instantclient-basic-nt-11.2.0.2.0
set ORACLE_HOME=C:\instantclient-basic-nt-11.2.0.2.0
set TNS_ADMIN=C:\instantclient-basic-nt-11.2.0.2.0
set NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
start plsqldev.exe
PL/SQL Developer过期解决方法
参考资料:
方法一:
1.首先,登陆PL/SQL Developer,PL/SQL Developer要到期了
2.输入指令“regedit”打开注册表,如图所示
3.然后,在注册表里按HKEY_CURRENT_USER\\Software\\Allround Automations 这个路径找到“Allround Automations ”,然后删除它。
4.删除上一步中的后,在找到HKEY_CURRENT_USER\\Software\\Microsoft\\Security,删除“Security”。
5.这时候关闭注册表,在重新登陆PL/SQL Developer,会出现如图所示的提示。这时候就可以重新用30天了。
6这种方法只能用30天,所以紧急事情解决后,还是赶紧找注册码吧,一劳永逸;当然也可以30天到期后,在这样解决,在用30天,循环下去。
方法二:
注册码:
Product Code:4t46t6vydkvsxekkvf3fjnpzy5wbuhphqz
Serial Number:601769
Password:xs374ca
以上是关于pl/sql developer 登陆时 出现"ORA-12154: TNS:无法解析指定的连接标 ”!我在cmd里就能连接上。的主要内容,如果未能解决你的问题,请参考以下文章
[Oracle] - 使用32位 PLSQL(PL/SQL Developer)登陆64位Oracle失败之解决
pl/sql developer中文乱码,为啥呢?怎么解决?Oracle问题
pl/sql developer和sql developer有啥区别?