一、.PL/SQL 连接oracle 10g时出错:
---------------------------PL/SQL Developer---------------------------ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务 ---------------------------OK    
二、网上查了下资料,解决方法如下:1. Open the ""<OracleHome>/network/admin/listener.ora" file in the host,and you will see:
   SID_LIST_LISTENER =
   (SID_LIST =
     (SID_DESC =
       (SID_NAME = PLSExtProc)
       (ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
       (PROGRAM = extproc)
     )
   )
  2. Add the following lines after the 7th line in the above 
            (SID_DESC =
       (GLOBAL_DBNAME = ORACLE)
       (ORACLE_HOME = D:\oracle\product\10.2.0\db_1)   
       (SID_NAME = ORACLE)
      )
  3. At last the content of the file become to the following section:
 SID_LIST_LISTENER =
   (SID_LIST =
     (SID_DESC =
       (SID_NAME = PLSExtProc)
       (ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
       (PROGRAM = extproc)
     )
     (SID_DESC =
       (GLOBAL_DBNAME = ORACLE)
       (ORACLE_HOME = D:\oracle\product\10.2.0\db_1)   
       (SID_NAME = ORACLE)
      )
   )
  4. Save the file and restart the TNSListener service in the host. That's OK! 
三、问题:为什么我在安装完oracle 10g 后能用pl/sql连接orcale,重启电脑后就不行了? 
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/gysheng2/archive/2010/12/04/6054449.aspx

解决方案 »

  1.   

    请到 控制面板-->管理工具-->服务 中看看oracle 服务启动了吗?
      

  2.   

    oracle 服务和监听服务在重启电脑后都已自动启动,但listener.ora中的内容是这样的SID_LIST_LISTENER =
      (SID_LIST =
      (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
      (PROGRAM = extproc)
      )
      )
    那之前为什么oracle仅根据这个就能监听到客户端的请求?我的电脑是自动获取ip地址的,但和这有什么关系呢?我是通过localhost连接的
      

  3.   

    这个问题很简单了,你去服务里把ORACLE的都启动开来,还有你看你要连到什么数据库,就配好对应TESNAMES。ORA
      

  4.   

    把tnsname.ora listener.ora 
    中的host 改成计算机名称 或者localhost  重启服务 试下
      

  5.   

    lsnrctl stat 看看实例被注册进去没有?
      

  6.   

    在服务里看一下有没有启动oracle服务?