參考百度知道上的文章《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訪問沒有設置。