【发布时间】:2018-01-05 07:33:33
【问题描述】:
当我使用命令提示符登录 sqlplus 时出现协议适配器错误。
但是,如果我使用oracle的SQLPlus登录,那么它会成功登录。
由于这个问题,即使我也无法访问 TOAD。
谁能帮我解决这个问题。
复制 LISTENER.ORA 和 TNSNAMES.ORA 的文本
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)
)
)
【问题讨论】:
-
您的目标数据库
ORCL没有在您的 tnsnames.ora 中定义,这让我想知道您是否安装了多个 Oracle 客户端。 Windows 开始菜单中的 SQL*Plus 是指定完整路径的快捷方式,这可能是不同的(路径决定使用哪个客户端)。无论如何,在命令行上,您需要set local=orcl或sqlplus yourusername@orcl。 -
亲爱的威廉,感谢您的帮助...更新了 LISTENER.ORA,您也可以查看上面所附的屏幕截图。我只使用一个客户端....如果您检查屏幕截图,它在 SQLPlus 窗口中工作正常,但在“命令提示符”中不工作......最近我的操作系统 Windows 8 自动更新..
-
您的 tnsnames.ora 仍然没有定义您在屏幕截图中用于
oracle_sid的orcl。但我的主要建议是设置local而不是oracle_sid。我会不理会听众,因为它似乎已经在工作了。