2017-07-29 161 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'。