我用sqlplus能连接oracle数据库,但用plsql连接时出现 ora 12560协议适配器错误,该怎么办?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我用sqlplus能连接oracle数据库,但用plsql连接时出现 ora 12560协议适配器错误,该怎么办?相关的知识,希望对你有一定的参考价值。

这是启动的服务

这是登陆界面

这是报错信息

这是系统变量

求好心的大神帮帮忙,小弟第一次提问,这个问题已经困扰我好几天了,我总共才15分,全给了,求好心人帮帮忙,谢谢!

PL\\/SQL和SQL*PLUS走的不是一个Tnsnames.ora。找找有几个Tnsnames,都改成正确的配置。或者修改环境变量中的path路径,把正确的路径写在前面。追问

tnsnames都按网上找到的改成了正确配置,而且环境变量中的path路径也已经设置好了,但还是没解决

参考技术A 将localhost 修改为127.0.0.1,先测试你的服务是否能连通,之后测试plsql是否能链接成功追问

之前我试过这方法,还是不能解决

追答

加这个我帮你远程看看513842343

追问

已解决,后面自己找到了原因,谢谢

参考技术B 您好,问题是怎么解决的,我也遇到了同样的问题啦

sqlplus连接oracle失败分析和解决

背景:

  多台Linux服务器需要安装Oracle客户端,实现和Oracle数据库连接做业务处理。

  安装完第一台后,直接将安装的目录压缩并复制到其他几台机器上,启动sqlplus连接数据库时,一直提示输入用户名和密码。

[xxxxxxx]$ sqlplus user/[email protected]

SQL*Plus: Release 11.2.0.4.0 Production on Fri Feb 5 10:56:38 2016

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

ERROR:
ORA-12154: TNS:could not resolve the connect identifier specified


Enter user-name: user
Enter password: 
ERROR:
ORA-12545: Connect failed because target host or object does not exist


Enter user-name: user
Enter password: 

使用strace跟踪发现有错误ORA-21561: OID generation failed输出。

  strace sqlplus user/[email protected]

close(5)                                = 0
write(1, "ERROR:\n", 7ERROR:
)                 = 7
write(1, "ORA-21561: OID generation failed"..., 33ORA-21561: OID generation failed
) = 33
write(1, "\n", 1
)                       = 1
write(1, "\n", 1
)                       = 1
write(1, "Enter user-name: ", 17Enter user-name: )       = 17
fstat(0, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 1), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7feaa51c9000
read(0, ^C <unfinished ...>

出现错误ORA-21561: OID generation failed的原因是主机名和hosts文件中的主机名不一致导致。

解决方法:

  使用命令hostname 查询机器的主机名

[xxxxx]$ hostname
billingserver001

  修改/etc/hosts文件,将主机名加入到hosts文件中。

  

[xxxxx]$ cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.2     billingserver001

重新用sqlplus user/[email protected]连接数据库,连接成功。

[xxxxx]$ sqlplus user/[email protected]

SQL*Plus: Release 11.2.0.4.0 Production on Fri Feb 5 11:05:57 2016

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


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL>

Done.

 

以上是关于我用sqlplus能连接oracle数据库,但用plsql连接时出现 ora 12560协议适配器错误,该怎么办?的主要内容,如果未能解决你的问题,请参考以下文章

请教flask如何同时连接多个数据库

oracle 的sql*plus问题

oracle TNS 协议适配器错误

sqlplus如何连接oracle数据库?

oracle 用Sqlplus连接的时候中文出现乱码

通过 SQLPLUS 连接 Oracle 数据库