参考百度知道上的文章《oracle的sqlplus登陆的时候老报错:ORA-12560: TNS: 协议适配器错误》
我采用的是第三种,因为我
- 其他工具可以访问,说明监听服务肯定是起来的,以及databases instance也是起来的;
- 命令行进不去,说明环境配置中有问题;
然后我看下,我注册了两个服务,一个是orcl,一个是oracle;当orcl设置为sid后无效,再用oracle设置为sid后,成功了。
未免后续每次登陆都要设置oracle_sid,还需将在系统环境变量中加上oracle_sid变量:
以下是操作过程,直接copy代码以作后续参考。
C:\Users\Administrator>set oracle_sid=orcl;
C:\Users\Administrator>sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on 星期日 4月 26 10:23:17 2020
Copyright (c) 1982, 2010, Oracle. All rights reserved.
SQL> conn scott/password
ERROR:
ORA-12560: TNS: 协议适配器错误
SQL> exit
C:\Users\Administrator>tnsping oracle
TNS Ping Utility for 32-bit Windows: Version 11.2.0.1.0 - Production on 26-4月 -2020 10:26:10
Copyright (c) 1997, 2010, Oracle. All rights reserved.
已使用的参数文件:
D:\app\Administrator\product\11.2.0\dbhome_1\network\admin\sqlnet.ora
已使用 TNSNAMES 适配器来解析别名
尝试连接 (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = windows10.microdone.cn)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = oracle)))
OK (40 毫秒)
C:\Users\Administrator>set oracle_sid=oracle
C:\Users\Administrator>sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on 星期日 4月 26 10:26:18 2020
Copyright (c) 1982, 2010, Oracle. All rights reserved.
SQL> conn scott/password
已连接。
再后续发现,用工具能够直接访问的原因是:工具的登陆界面连接oracle会需要输入sid,且这个输入的sid不受环境变量影响,而我用cmd访问没有设置。