配置 tnsnames.ora  打开cmd.exe ,输入tnsping 实例名 得到结果:
Microsoft Windows [版本 6.1.7600]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。C:\Users\Administrator>tnsping wzjydboTNS Ping Utility for 64-bit Windows: Version 10.2.0.4.0 - Production on 31-JAN-2
013 08:47:44Copyright (c) 1997,  2007, Oracle.  All rights reserved.Used parameter files:
C:\oracle\product\10.2.0\db_1\network\admin\sqlnet.ora
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)
(HOST = ceshi)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = WZJYDBO)))
OK (330 msec)打开sqlplus ,使用 连接字符串,正常进入
打开 net manager , 测试 通过.sql2005上新建链接服务器,跟测试服务器上建的一样,用openquery 查询,返回结果:
链接服务器"WZJYDBO2"的 OLE DB 访问接口 "OraOLEDB.Oracle" 返回了消息 "ORA-12154: TNS:could not resolve the connect identifier specified"。
消息 7303,级别 16,状态 1,第 1 行
无法初始化链接服务器 "WZJYDBO2" 的 OLE DB 访问接口 "OraOLEDB.Oracle" 的数据源对象。
哪位大神救救我吧~ 煎熬了我2天了~~~

解决方案 »

  1.   

    could not resolve the connect identifier specified
    ---------------
    应该是链接字符串有问题
      

  2.   

    是sql2005里配置的链接服务器呢还是tnsnames.ora里的?
      

  3.   

    设置的是SERVICE_NAME = WZJYDBO,你连接的确是 “无法初始化链接服务器 "WZJYDBO2" 的 OLE DB 访问接口 "OraOLEDB.Oracle" 的数据源对象。”
      

  4.   

    sorry,贴错了,这个是我后来又建了一个,但我改成WZJYDBO也是不行的~请再看看是否有其他问题
      

  5.   

    HOST = ceshi
    你的manager没有配对把,host这里应该写的是连接的服务器Ip地址,你怎么写成ceshi
      

  6.   

    谢谢,这里我也试了,ceshi是机器名,跟IP地址效果等同的,我改成ip地址也是一样的
      

  7.   

    这2天找百度跟google已经不下百次了吧,网上教程不近相同,实在是找不出问题了,我想是不是OraOLEDB.oracle这个服务不兼容呢~
      

  8.   

    host你写的是本机和还是你要连的机器?
      

  9.   

    host是连的局域网内的远程机,我用ip和机器名都试过了
    我用sqlplus能够登录的 ,能够查询到数据的,sqlplus也是调用 %%%目录下的tnsnames.ora的
    电脑上只装了一个版本的oracle
    环境变量什么的都按照网上教程设好了的
      

  10.   

    你看看这个http://www.cnblogs.com/1-2-3/articles/sql-link-oracle.html,按照上面的操作一遍,还有你先看看oracle是不是可以连接远程机器后正常使用
      

  11.   

    刚刚下了个64位的oracle sql developer 可以连接,并能得到数据
      

  12.   

    我这边没有microsoft OLE DB PROVIDER FOR ORACLE ,只有ORACLE PROVIDER FOR OLE DB这个~
    这个要怎么办呢
      

  13.   

    microsoft OLE DB PROVIDER FOR ORACLE ,ORACLE PROVIDER FOR OLE DB
    2者一个是微软的服务,一个是oracle的服务
    我估计就是这个服务出的问题,因为服务器不能随便重启,所以一直没办法把这个服务卸了重装,只重装了oracle程序
      

  14.   

    ODBC驱动Microsoft ODBC for Oracle (64位)
      

  15.   

    还是不行,我觉得sql新建服务器的时候默认调用的32位的 驱动,64位的驱动 没用到
      

  16.   

    http://www.microsoft.com/zh-cn/download/details.aspx?id=20065
    如果下载这个ODBC还不能解决问题,那我实在不知道了,你再看看其他人能不能帮你解决。
      

  17.   

    无法初始化链接服务器 "WZJYDBO2" 的 OLE DB 访问接口 "OraOLEDB.Oracle" 的数据源对象。
    ===============================================================================
    查看一下是否安装了 Oracle Provider for OLE DB,如果未装,选用 Microsoft OLE DB Provider for Oracle
      

  18.   

    EXEC master.dbo.sp_addlinkedserver @server = N'ORACLE', @srvproduct=N'oracle', @provider=N'OraOLEDB.Oracle', @datasrc=N'orcl'
     /* For security reasons the linked server remote logins password is changed with ######## */
    EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'ORACLE',@useself=N'False',@locallogin=NULL,@rmtuser=NULL,@rmtpassword=NULL
    EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'ORACLE',@useself=N'False',@locallogin=N'sa',@rmtuser=N'tzkf1',@rmtpassword='########'
    -----------------------------------
    这是我刚才建链接服务器脚本,一切正常。
      

  19.   

    前边:tnsping wzjydbo
    后边: @server = N'ORACLE'
    ============================
    怎么不一样?