2017-07-29 29 views
0

當我登錄到sqlplus時,使用命令提示符獲取協議適配器錯誤。在命令提示符中使用sqlplus時TNS協議適配器錯誤

但是,如果我使用oracle的SQLPlus登錄,那麼它將成功登錄。

由於這個問題,即使我無法訪問TOAD。

任何人都可以幫助我解決問題。 LISTENER.ORA和TNSNAMES.ORA

CHECK THE SCREENSHOT HERE

複製文本

LISTENER.ORA

SID_LIST_LISTENER = 
    (SID_LIST = 
    (SID_DESC = 
     (SID_NAME = CLRExtProc) 
     (ORACLE_HOME = D:\ProgramFiles\oracle12c\app\oracle\product\12.1.0\dbhome_1) 
     (PROGRAM = extproc) 
     (ENVS = "EXTPROC_DLLS=ONLY:D:\ProgramFiles\oracle12c\app\oracle\product\12.1.0\dbhome_1\bin\oraclr12.dll") 
    )   
) 

LISTENER = 
    (DESCRIPTION_LIST = 
    (DESCRIPTION = 
     (ADDRESS = (PROTOCOL = TCP)(HOST = XXXXX-pc)(PORT = 1521)) 
     (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) 
    ) 
) 

TNSNAMES.ORA

ORACLR_CONNECTION_DATA = 
    (DESCRIPTION = 
    (ADDRESS_LIST = 
     (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) 
    ) 
    (CONNECT_DATA = 
     (SID = CLRExtProc) 
     (PRESENTATION = RO) 
    ) 
) 
+0

您的目標數據庫'ORCL'沒有在您的tnsnames.ora中定義,這讓我想知道您是否安裝了多個Oracle客戶端。 Windows開始菜單中的SQL * Plus是指定完整路徑的快捷方式,可能是差異(路徑決定使用哪個客戶端)。無論如何,在命令行上,您需要'set local = orcl'或者'sqlplus yourusername @ orcl'。 –

+0

親愛的威廉,謝謝你的幫助...更新了LISTENER.ORA,你也可以查看上面的附件截圖。我只使用一個客戶端....如果您檢查屏幕顯示,它在SQLPlus窗口中正常工作,但不能在「命令提示符」中工作...最近我的操作系統Windows 8已自動更新.. – user3800322

+0

您的tnsnames。 ora仍然沒有在屏幕截圖中定義用於'oracle_sid'的'orcl'。但我的主要建議是設置'local'而不是'oracle_sid'。因爲它似乎已經在工作了,所以我會讓聽衆獨自一人。 –

回答

0

如果你確保你的配置是真的, 也許,你編輯你的tnsnames.ora,listener.ora文件的記事本可以在每個換行符的前面放置'....'(點)。

例如:

ORACLR_CONNECTION_DATA = 
...(DESCRIPTION = 
.....(ADDRESS_LIST = 
.......(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) 
....) 
....(CONNECT_DATA = 
....(SID = CLRExtProc) 
........(PRESENTATION = RO) 
....) 
..) 

您可以檢查此情況下,用記事本+選擇 '顯示所有Charecters'。