Microsoft OLE DB Provider for Oracle(数据库引擎)

Microsoft OLE DB Provider for Oracle 允许对 Oracle 数据库中的数据进行分布式查询。

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

  1. 确保运行 SQL Server 的服务器上的 Oracle 客户端软件已达到访问接口所要求的级别。Microsoft OLE DB Provider for Oracle 需要 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 登录名和密码(OrclUsr 和 OrclPwd)将 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 或有默认值。

注册表项

若要启用 OLE DB Provider for Oracle,使与 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 访问接口