连接远程数据库的时候。出现ora-12514 tns 监听程序当前无法识别连接描述符中请求的服务的错误!!tnsnames.ora文件:ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = PC-200908201515)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
      (UR=A)
    )
  )
zghouse=
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST =51.143.123.49)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME =zghouse)
     
    )
  )EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )listener.ora文件:SID_LIST_LISTENER =
  (SID_LIST =
   (SID_DESC =      (SID_NAME = PLSExtProc)      (ORACLE_HOME = F:\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 = PC-200908201515)(PORT = 1521))
    )  )
)

解决方案 »

  1.   


    zghouse= 
      (DESCRIPTION = 
        (ADDRESS_LIST = 
          (ADDRESS = (PROTOCOL = TCP)(HOST =51.143.123.49)(PORT = 1521)) 
        ) 
        (CONNECT_DATA = 
          (SERVER = DEDICATED) 
          (SERVICE_NAME =zghouse) 
        
        ) 
      ) 楼主是手动修改tnsname.ora文件的吗? 在检查下,把前面的空格都去掉,这里面多一个空格都报错..
      

  2.   


    监听重启了没? 用tnsping SID看看..能ping通就可以了..
      

  3.   

    zghouse= 
      (DESCRIPTION = 
        (ADDRESS_LIST = 
          (ADDRESS = (PROTOCOL = TCP)(HOST =51.143.123.49)(PORT = 1521)) 
        ) 
        (CONNECT_DATA = 
          (SERVER = DEDICATED) 
          (SERVICE_NAME =zghouse) 
        
        ) 
      ) |||||||||||||||||||||
    客户端 nsping zghouse
    服务器端  51.143.123.49
    lsnrctl status 看下有zghouse这个服务吗?
      

  4.   


    防火墙有开没?在Net Manager里配置下看看..
      

  5.   


    上面是你服务端的内容吧。。
    你客户端的tnsnames.ora文件的内容呢?贴出来看看
      

  6.   

    如果PC-200908201515是你使用的电脑名,那么
    listener.ora是你本机的,不是服务器的如果PC-200908201515是你服务器的电脑名,那么
    (ADDRESS = (PROTOCOL = TCP)(HOST = PC-200908201515)(PORT = 1521))
    换成
    (ADDRESS = (PROTOCOL = TCP)(HOST = 服务器ip)(PORT = 1521))或者打开系统盘->:\WINDOWS\system32\drivers\etc\hosts文件
    填加
    服务器ip  PC-200908201515
      

  7.   


    PC-200908201515是我使用的电脑名
    服务器的IP为51.143.123.49
      

  8.   

    tnsping zghouse
    能正常通过啊 
    可还是报错。。
    请帮帮忙啊
      

  9.   


    楼主你把服务器和客户端的tnsnames.ora文件内容分别贴出来看看,我觉得是两个文件不对应导致的。
      

  10.   

    服务器端的tnsnames.ora文件怎么获取啊。。我这里只有客户端的。。
    你说的是。监听文件吧
      

  11.   

    已经解决。
    问题的关键是:oracle10g里面必须将server_name 改成SID
    在tnsname文件里面