我用ado.net去连接oracle出错
ORA-12504: TNS:listener was not given the SERVICE_NAME in CONNECT_DATA代码如下
this.connect = new OracleConnection("Data Source=computerName;User Id=system;Password=123456789;");
this.connect.Open();我的tnsnames.ora如下ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = computerName)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )
我再其他客户端使用tnsping computerName都是没有问题的,太奇怪了
谢谢!

解决方案 »

  1.   

    介个不是TNS配置的问题,是Listener木有配对,检查一下呗
      

  2.   

    我的Listener如下SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = CLRExtProc)
          (ORACLE_HOME = C:\app\wang\product\11.2.0\dbhome_1)
          (PROGRAM = extproc)
          (ENVS = "EXTPROC_DLLS=ONLY:C:\app\wang\product\11.2.0\dbhome_1\bin\oraclr11.dll")
        )
      )LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
          (ADDRESS = (PROTOCOL = TCP)(HOST = wang.ent.tempName.com)(PORT = 1521))
        )
      )ADR_BASE_LISTENER = C:\app\wang
      

  3.   

    对了,我是在两台不同的机器上,但我已经确认,有oracle的电脑的防火墙已经全部关掉了
      

  4.   

    之前我用jdbc连接11g 碰到这样的问题。  11g不能用sid   用server_name  加反斜扛
      

  5.   

    楼上什么意思啊,说得清楚点,我也是第一次接触oracle
      

  6.   

    搞定了没有,我也碰到这个问题。。我是装了11g odac    10g的oracle