ora-12505 tns listener does not currently know of sid given in connect descripto

第一种可能
使用的数据库sid名不正确。用如下命令
SELECT NAME FROM v$database;


第二种可能
如果sid配置没有错误,但是还是报错,那可能就是oracle的监听配置出了问题,需要检查listener.ora文件。
正确配置如下:
# listener.ora Network Configuration File:

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = /usr/lib/oracle/xe/app/oracle/product/10.2.0/server)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = XE)
      (ORACLE_HOME = /usr/lib/oracle/xe/app/oracle/product/10.2.0/server)
      (SID_NAME = XE)
    )
  )
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
  )

红字部分改成oracle创建时候的sid, 蓝色部分改成ip或hostname,保存退出

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