今天在连接 oracle   11g 的时候,碰到了一个问题。 Oracle安装在我的笔记本上,如果我用sqlplus直接连接的话(就是不使用 数据库 服务名/sid),连接是成功的。但是当我使用sqlplus scott/tiger@localhost:1521/orcl时,却报错了

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

这个错表明我的listener没有办法识别我的数据库服务orcl是什么。在网上 google 了一下,找到以下解决办法,在监听程序中添加数据库服务监听,因为当你在 安装 数据库11g时程序不会默认帮你添加这项服务。

打开net manager>监听程序,找到你的监听程序(没有的话添加一个),在右边的下拉框选项里选择“数据库服务”,然后填写:全局数据库服务名orcl,oracle主目录,和sid。

还有就是你可以直接改写listener.ora文件,添加以下内容。
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = orcl)
      (ORACLE_HOME = F:\oracle\product\11.1.0\db_1)
      (SID_NAME = orcl)
    )
  )

保存后用命令:lsnrctl restart listener