sqldeveloper ORA-12505。TNS:侦听器当前不知道连接描述符中给出的 SID

pra*_*phy 6 oracle sqlplus ubuntu oracle-sql-developer

在这个网络中有与问题中给出的错误消息相关的类似问题提问和回答,但是这个问题与每个问题都略有不同。

我已经在我的 ubuntu 中安装了 oracle 12c 可以通过命令提示符成功连接到我的hr用户sqlplus hr/hr@pdborcl

oracle@ubuntu:~$ sqlplus hr/hr@pdborcl
SQL*Plus: Release 12.1.0.2.0 Production on Mon Nov 16 21:57:24 2015
Copyright (c) 1982, 2014, Oracle.  All rights reserved.
Last Successful login time: Mon Nov 16 2015 21:24:32 +05:45
Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

SQL>show user;
USER is "HR"
Run Code Online (Sandbox Code Playgroud)

然而,我试图轻松地使用 sqldeveloper。当我提供以下凭据时,在 sqldeveloper 中的创建连接选项中

我收到以下错误。 在此处输入图片说明 ORA-12505。TNS:侦听器当前不知道连接描述符中给出的 SID。

然而与

用户名:sys

密码: ******

SID:orcl

同样,所有其他凭据都可以正常工作。

我的 tnsname.ora 有

PDBORCL =
  (DESCRIPTION =
   (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = pdborcl)
   )
 )

ORCL =
 (DESCRIPTION =
  (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
  (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = orcl)
  )
 )
Run Code Online (Sandbox Code Playgroud)

Phi*_*lᵀᴹ 9

您必须使用服务名称连接到 12c 中的可插拔数据库。

我猜,这只是可以绊倒你的事情之一!SQL Plus 连接 OK 可能把你扔了。


小智 5

我有同样的问题。我通过使用SERVICE NAME(别名)而不是SID解决了这个问题:

1 . 从ORACLE_HOME文件夹打开文件tnsnames.ora。如果您不知道它的位置,请执行以下步骤


Windows(打开cmd)

> sqlplus // connect to sqlplus, login as sysdba
 as / sysdba
 // then type your password that you set in configuration setup step
 // next 3 lines used for getting ORACLE_HOME
 > var OHM varchar2(100);
 > EXEC dbms_system.get_env('ORACLE_HOME', :OHM);
 > PRINT OHM // ---> ORACLE_HOME
Run Code Online (Sandbox Code Playgroud)

Linux(打开终端 Ctrl+Alt+T)


echo $ORACLE_HOME

tnsnames.ora位于[Your_ORACLE_HOME]/Network/Admin。用你的编辑器打开它。

2 . 在tnsnames.ora文件中,查找包含 SERVICE_NAME 的行


在此处输入图片说明


3 . 选择服务名称并输入上面的名称,测试成功就大功告成了

在此处输入图片说明