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

最近开机后,打开PL/SQL 输入用户米 密码总报标题的错误。

我在两台机器都发现了这个错误,开始以为PL/SQL问题,结果用ORACLE的SQL PLUS问题依旧。

BAIDU了一下,找到了解决办法。

oracle 10G:

D:\oracle\product\10.1.0\db_1\NETWORK\ADMIN目录下的listener.ora文件。

问题都在这个文件上。

该文件原文如下:

# listener.ora Network Configuration File: D:\oracle\product\10.1.0\db_1\network\admin\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = D:\oracle\product\10.1.0\db_1)
      (PROGRAM = extproc)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
      )
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
      )
    )
  )

 


操作:

在  (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = D:\oracle\product\10.1.0\db_1)
      (PROGRAM = extproc)
    )

后面添加

(SID_DESC =
  (GLOBAL_DBNAME = orcl)
  (ORACLE_HOME = D:\oracle\product\10.1.0\db_1)
  (SID_NAME = orcl)
  )

网上的一些文章没注意这点,由于每个人的数据库SID不同。所以加的这段话的GLOBAL_DBNAME和SID_NAME

都是你的数据库的SID。而且ORACLE_HOME也不同要根据原文的ORACLE_HOME来写。

 

修改完的listener.ora为:

# listener.ora Network Configuration File: D:\oracle\product\10.1.0\db_1\network\admin\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = D:\oracle\product\10.1.0\db_1)
      (PROGRAM = extproc)
    )
    (SID_DESC =
  (GLOBAL_DBNAME = orcl)
  (ORACLE_HOME = D:\oracle\product\10.1.0\db_1)
  (SID_NAME = orcl)
  )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
      )
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
      )
    )
  )
重启服务。OK!!!


如果以上工作还没成功的话,那么就把(HOST = localhost)  的HOST改成你的实际IP地址,就算写127.0.0.1也可以。

你可能感兴趣的:(oracle,sql)