用于 Oracle 的 Microsoft OLE DB 访问接口(数据库引擎)

Oracle 的 Microsoft OLE DB 访问接口允许对 Oracle 数据库中的数据进行分布式查询。

创建链接服务器以访问 Oracle 数据库实例

  1. 确保运行 SQL Server 的服务器上的 Oracle 客户端软件已达到访问接口所要求的级别。Oracle 的 Microsoft OLE DB 访问接口需要 Oracle Client Software Support File 7.3.3.4.0 版或更高版本以及 SQL*Net 2.3.3.0.4 版。

  2. 在运行 SQL Server 的服务器上创建指向 Oracle 数据库实例的 SQL*Net 别名。有关详细信息,请参阅 Oracle 文档。

  3. provider_name 指定为 MSDAORA,将 data_ source 指定为 Oracle 数据库实例的 SQL*Net 别名,然后执行 sp_addlinkedserver 创建链接服务器。

    下面的示例假定 SQL*Net 别名已定义为 OracleDB

    sp_addlinkedserver 'OrclDB ','Oracle',' MSDAORA','OracleDB'
    
  4. 使用 sp_addlinkedsrvlogin 创建从 SQL Server 登录名到 Oracle 登录名的登录名映射。

    下面的示例通过使用 Oracle 登录名和密码(OrclUsrOrclPwd)将 SQL Server 登录名 Joe 映射到步骤 3 中定义的链接服务器:

    sp_addlinkedsrvlogin 'OrclDB', false, 'Joe', 'OrclUsr', 'OrclPwd'
    

每个 Oracle 数据库实例都只有一个具有空名称的目录。必须使用由四个部分组成的名称(格式为 OracleLinkedServerName**..OwnerUserName.**TableName)引用 Oracle 链接服务器中的表。例如,以下 SELECT 语句引用由 OrclDB 链接服务器映射的服务器中 Oracle 用户 MARY 所拥有的表 SALES

SELECT *
FROM OrclDB..MARY.SALES

在 Oracle 链接服务器中引用表时,请使用以下规则:

  • 如果在 Oracle 中创建的表名和列名没有使用带引号的标识符,请使用字母全部大写的名称。
  • 如果在 Oracle 中创建的表名和列名使用了带引号的标识符,请使用与在 Oracle 中创建名称时所用字母完全相同的字母大小写形式。
  • INSERT 语句应为表中的所有列提供值,即使表中的某些列为 NULL 或有默认值。

注册表项

若要启用 Oracle 的 OLE DB 访问接口,使与 Oracle 客户端软件一起使用,必须从命令行运行注册表文件以修改客户端的注册表。不能同时运行客户端软件的多个实例。下表列出了这些文件,这些文件位于 Microsoft 数据访问组件 (MDAC) 的安装目录结构中。此位置通常为 C:\Program Files\Common Files\System Files\OLE DB。

Oracle 客户端 Windows NT 或 9x Windows 2000

7.x

mtxoci7x_winnt.reg

mtxoci7x_win2k.reg

8.0

mtxoci80_winnt.reg

mtxoci80_win2k.reg

8.1

mtxoci81_winnt.reg

mtxoci81_win2k.reg

请参阅

概念

分布式查询
与 SQL Server 一起测试过的 OLE DB 访问接口

帮助和信息

获取 SQL Server 2005 帮助