无法通过服务名使用 SQLPLUS 连接到 oracle 数据库

Posted

技术标签:

【中文标题】无法通过服务名使用 SQLPLUS 连接到 oracle 数据库【英文标题】:cannot connect to oracle database with SQLPLUS via service name 【发布时间】:2017-07-02 07:20:18 【问题描述】:

我正在尝试使用 service_name 从 SQLPLUS 连接到 Oracle 数据库,但我收到了

ORA-12154 错误(ORA-12154:TNS:无法解析指定的连接标识符。

注意:当我使用 SQL Developer 时,一切正常。

这是我的 tnsnames.ora 设置:

SAMPLEDB =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = sampledb)
    )
  )

这是我使用的连接命令:

sqlplus test/password@localhost:1521/sampledb

谁能告诉我我做错了什么?

【问题讨论】:

您使用的是 exact 命令吗?第一个字真的是plsql吗? 我的错误,确实,我使用的命令是sqlplus ... 【参考方案1】:

除了显而易见的(启动 SQL*Plus 的命令当然是 sqlplus)之外,您在 SAMPLEDB 连接标识符的定义中缺少一行。

在第一行和第二行之间插入以下行(完全如下所示):

  (DESCRIPTION =

你一定是把它删掉了。

SAMPLEDB =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = sampledb)
    )
  )

【讨论】:

我添加了丢失的行,但我有同样的错误。

以上是关于无法通过服务名使用 SQLPLUS 连接到 oracle 数据库的主要内容,如果未能解决你的问题,请参考以下文章

oracle无法连接到数据库实例

oracle ora-01033错误,怎么解决,在sqlplus下用system登陆权限不足

局域网内如何连接Oracle数据库

ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务解决

解决oracle11g的ORA-12505问题

Oracle 客户端 ORA-12541:TNS:没有侦听器 [关闭]