【问题标题】:TNS Protocol adapter error while using sqlplus in the command prompt在命令提示符下使用 sqlplus 时出现 TNS 协议适配器错误
【发布时间】:2018-01-05 07:33:33
【问题描述】:

当我使用命令提示符登录 sqlplus 时出现协议适配器错误。

但是,如果我使用oracle的SQLPlus登录,那么它会成功登录。

由于这个问题,即使我也无法访问 TOAD。

谁能帮我解决这个问题。

CHECK THE SCREENSHOT HERE

复制 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=orclsqlplus yourusername@orcl
  • 亲爱的威廉,感谢您的帮助...更新了 LISTENER.ORA,您也可以查看上面所附的屏幕截图。我只使用一个客户端....如果您检查屏幕截图,它在 SQLPlus 窗口中工作正常,但在“命令提示符”中不工作......最近我的操作系统 Windows 8 自动更新..
  • 您的 tnsnames.ora 仍然没有定义您在屏幕截图中用于 oracle_sidorcl。但我的主要建议是设置local 而不是oracle_sid。我会不理会听众,因为它似乎已经在工作了。

标签: oracle sqlplus oracle12c


【解决方案1】:

如果你确定你的配置是真的, 也许,您编辑 tnsnames.ora、listener.ora 文件的记事本可以将“....”(点)放在每个换行符的前面。

例如:

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

您可以使用 notepad++ 选择“显示所有字符”来检查这种情况。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-05
    • 2011-04-06
    • 2023-03-25
    • 1970-01-01
    相关资源
    最近更新 更多