环境是这样的,有一台服务器,安装着Oracle服务器端软件,并且有数据库名为cbsdb;还有一台客户端机器,安装了Oracle客户端程序,但是在使用ODBC或者OLEDB去连接服务器端的数据库的时候,弹出错误提示:“TNS:没有这样的适配器”服务器上的listener.ora文件如下:# LISTENER.ORA Network Configuration File: D:\oracle\ora92\network\admin\listener.ora
# Generated by Oracle configuration tools.LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = sinomapss)(PORT = 1521))
      )
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
      )
    )
  )SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = D:\oracle\ora92)
      (PROGRAM = extproc)
    )
  )
客户端的tnsnames.ora内容如下:# C:\ORACLE\NETWORK\ADMIN\TNSNAMES.ORA Configuration File:C:\oracle\network\admin\tnsnames.ora
# Generated by Oracle Net8 Assistant
CBSDB=
  (DESCRIPTION =
    (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(PORT = 1521)(HOST = 172.16.1.40))
    )
    (CONNECT_DATA =
        (SERVICE_NAME =cbsdb)
    )
  )我是使用微软的SSIS,用来从Oracle里面把数据抽出到SQLServer数据库中。我没怎么用过Oracle,所以这个TNS的设置不明白,请教各位大侠看看这个TNS的设置是否有问题?

解决方案 »

  1.   

    给个例子看看LISTENER =
       (DESCRIPTION_LIST =
            (DESCRIPTION =
                (ADDRESS = (PROTOCOL = TCP)(HOST = IP)(PORT = 1521))
             )
        )test1 =
     (description =
        (address_list =
          (address = (protocol = tcp)(host = IP)(port = 1521))
        )
        (connect_data =
          (service_name = crmtest)
         )
      )
      

  2.   

    listener.ora 中:
    HOST = sinomapss 主机名称
    改成
    HOST = 172.16.1.40 
    试试。
      

  3.   

    哎,解决了,是安装的Provider版本不对造成的......