2015-02-23 29 views
1

我试图从Oracle7.2.0.4 32位客户端连接到Win7和Win 8.1机器上的Oracle 11.2.0.2 64位数据库。我可以成功地ping服务器并在两台机器上TNSPing侦听器。但是,当我尝试使用系统和密码登录到SQLPLus时,我收到ORA-12560 TNS:协议适配器错误。我可以登录到服务器上的SQLPlus。有任何想法吗?数据库已重新启动以及收听者。 ORACLE_SID已设置。我卡...TNS:协议适配器错误

+0

你怎么连接 - 你使用的完整命令是什么,包括连接字符串?如果您使用的是TNS别名,那么您的PC上的tnsnames.ora文件中的定义如何?你的tnsping命令是什么? (作为远程系统连接需要额外的步骤,并且您可能不应该作为内置用户进行连接;但是由于此原因,您不会收到适配器错误)。 – 2015-02-23 16:32:54

+0

TNS ping命令是tnsping abcd。 abcd是我在TNS名称中列出的别名。不幸的是需要连接系统。另外,如果我在win7和win8.1环境中使用“system @ abcd”连接到sqlplus,它就可以工作。过去在其他环境中,“@abcd”不需要连接。我不确定为什么现在需要它。是否有解决方法,因为使用“@abcd”不适用于我们的场景。 – samuraiY 2015-02-23 16:50:49

+0

你已经失去了我......“如果我使用”system @ abcd“连接到sqlplus ......它可以工作”,但问题是它不起作用。请编辑问题展示,确切地说,什么不工作,如果没有,就会得到完整的错误信息。 – 2015-02-23 16:54:35

回答

1

如果我遵循你所看到的,听起来你只是想在你的Windows机器上设置the LOCAL enviroment variable到TNS别名;那么当你尝试连接时你不需要提供。

这是12c即时客户端,但效果与11g客户端相同。指定一个别名作为连接字符串将工作(ORA-01017仍然是从DB推出):

c:\Program Files\instantclient_12_1>sqlplus -l x/[email protected] 

SQL*Plus: Release 12.1.0.2.0 Production on Mon Feb 23 17:12:34 2015 

Copyright (c) 1982, 2014, Oracle. All rights reserved. 

ERROR: 
ORA-01017: invalid username/password; logon denied 

没有别名连接得到您的ORA-12560:

c:\Program Files\instantclient_12_1>sqlplus -l x/y 

SQL*Plus: Release 12.1.0.2.0 Production on Mon Feb 23 17:11:58 2015 

Copyright (c) 1982, 2014, Oracle. All rights reserved. 

ERROR: 
ORA-12560: TNS:protocol adapter error 

但如果我设置LOCAL然后我可以连接我仿佛指定别名:

c:\Program Files\instantclient_12_1>set LOCAL=abcd 

c:\Program Files\instantclient_12_1>sqlplus -l x/y 

SQL*Plus: Release 12.1.0.2.0 Production on Mon Feb 23 17:14:23 2015 

Copyright (c) 1982, 2014, Oracle. All rights reserved. 

ERROR: 
ORA-01017: invalid username/password; logon denied 

你并不需要有ORACLE_SID设置为仅用于遗留连接,其中CLIE nt和服务器在同一个盒子上。

+0

工作正常!谢谢Alex! – samuraiY 2015-02-23 17:27:32