C. 使用用于 Oracle 的 Microsoft OLE DB 提供程序
此示例创建一台名为 LONDON Mktg 的链接服务器,该服务器使用用于 Oracle 的 Microsoft OLE DB 提供程序,并且假设此 Oracle 数据库的 SQL*Net 别名为 MyServer。USE master
GO
-- To use named parameters:
EXEC sp_addlinkedserver
   @server = 'LONDON Mktg',
   @srvproduct = 'Oracle',
   @provider = 'MSDAORA',
   @datasrc = 'MyServer'
GO
-- OR to use no named parameters:
USE master
GO
EXEC sp_addlinkedserver 
   'LONDON Mktg', 
   'Oracle', 
   'MSDAORA',
   'MyServer'
GO

解决方案 »

  1.   

    oracle的写法有些是不同的,能否用ip连接,你自己测试一下吧
      

  2.   

    zjcxc(邹建) :你好!
    sp_addlinkedserver有了,那么sp_addlinkedsrvlogin 还有查询、导入呢?希望能再帮帮我!
      

  3.   

    我用:
    EXEC sp_addlinkedserver 
       'LONDON Mktg', 
       'Oracle', 
       'MSDAORA',
       'MyServer'
    GO
    EXEC sp_addlinkedsrvlogin 'LONDON Mktg','false',null,'system','密码'
    都能通过,但是下面的:
    select * from [LONDON Mktg].[system].表名
    就不行了,请问应该怎么写?
      

  4.   

    tryselect * from [LONDON Mktg]..[system].表名
      

  5.   

    在查询分析器里执行:
    EXEC sp_dropserver 'LONDON Mktg','droplogins'
    EXEC sp_addlinkedserver 
       'LONDON Mktg', 
       'Oracle', 
       'MSDAORA',
       'njgf_means'
    GO
    EXEC sp_addlinkedsrvlogin 'LONDON Mktg','false',null,'SYSTEM','means'
    SELECT * FROM [LONDON Mktg]..[SYSTEM].TGFZS
    报下面的错:
    服务器: 消息 7399,级别 16,状态 1,行 3
    OLE DB 提供程序 'MSDAORA' 报错。验证失败。
    [OLE/DB provider returned message: ORA-01017: invalid username/password; logon denied
    ]
    OLE DB 错误跟踪[OLE/DB Provider 'MSDAORA' IDBInitialize::Initialize returned 0x80040e4d:  验证失败。]。
      

  6.   

    EXEC sp_addlinkedsrvlogin 'LONDON Mktg','false','SYSTEM','means',null
    而不是
    EXEC sp_addlinkedsrvlogin 'LONDON Mktg','false',null,'SYSTEM','means'
      

  7.   

    写错了,应该是这样试试
    EXEC sp_addlinkedsrvlogin 'LONDON Mktg','false','sa','SYSTEM','means'
      

  8.   

    在oracle里用户大小写是区分的,用EXEC sp_addlinkedsrvlogin 'LONDON Mktg','false',null,'system','密码'应该可以,另外如果长期用,建好的连接不需要删除,LONDON Mktg是一个对象,长期有效