listener.ora文件:SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = C:\oracle\product\10.2.0\db_1)
      (PROGRAM = extproc)
    )
  )LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
    )
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST=192.168.0.4)(PORT = 1521))
      (CONNECT_DATA = (SERVICE_NAME = demo))
    )
  )
tnsnames.ora文件:JTCBW =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST=192.168.0.4)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orl)
    )
  )JTBDP =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.23.120)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orl)
    )
  )MIS =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST=192.168.0.4)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = demo)
    )
  )TEST =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST=192.168.0.4)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = demo)
    )
  )EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(Key = EXTPROC1))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )注意:IP换成127.0.0.1 localhost,主机名都不行
日志记录:
TNS-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
11-7月 -2009 08:03:38 * (CONNECT_DATA=(SID=orcl)(CID=(PROGRAM=C:\oracle\product\10.2.0\db_1\bin\emagent.exe)(HOST=70669F0E288A4CB)(USER=SYSTEM))) * (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.4)(PORT=2096)) * establish * orcl * 0
11-7月 -2009 08:03:43 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=)(USER=SYSTEM))(COMMAND=services)(ARGUMENTS=64)(SERVICE=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=70669f0e288a4cb)(PORT=1521))))(VERSION=169869568)) * services * 0

解决方案 »

  1.   

    你连的是哪个库阿,看起来像是连orcl,但是你的listener.ora里面只有demo。客户端连接MIS 或TEST 应该是成功的吧
      

  2.   

    看你的日志记录,是想要连本地数据库吧,tnsnames.ora文件下没有本地的配置信息
      

  3.   

    你先把你的两个文件备份一下. --listener.ora
    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = PLSExtProc)
          (ORACLE_HOME = C:\ora10g\ora10g)
          (PROGRAM = extproc)
        )
        (SID_DESC =
          (SID_NAME = ora10g)
          (ORACLE_HOME = C:\ora10g\ora10g)
        )
      )LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS_LIST =
            (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
          )
          (ADDRESS_LIST =
            (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
          )
        )
      )--tnsnames.ora
    ORA10G =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = ora10g)
        )
      )
    ora10g 是数据库的SID, 这样试试.
      

  4.   

    我也碰到过这样的问题,这样可以连上
    connect / as sysdba
    startup
      

  5.   

    这样是可以,当时我用那个plus/sql Developer连接时候,输入另外的用户名和密码就会提示无法识别连接描述符中的请求