用于 Oracle 的 Microsoft OLE DB 提供程序

来源:互联网 发布:centos卸载nginx 编辑:程序博客网 时间:2024/06/05 11:00
访问和更改关系数据

用于 Oracle 的 Microsoft OLE DB 提供程序

用于 Oracle 的 Microsoft OLE DB 提供程序使分布式查询得以查询 Oracle 数据库中的数据。

说明  从安装在 Microsoft Windows® 98 上的 SQL Server 实例执行分布式事务时,Oracle 客户端软件不支持使用用于 Oracle 的 Microsoft OLE DB 提供程序进行分布式查询。

 

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

  1. 确保运行 SQL Server 的服务器上的 Oracle 客户端软件已达到提供程序所要求的级别。用于 Oracle 的 Microsoft OLE DB 提供程序要求 Oracle 客户端软件支持文件的版本为 7.3.3.4.0 或更高版本,并且 SQL*Net 的版本为 2.3.3.0.4。

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

  3. 执行 sp_addlinkedserver 创建链接服务器,指定 MSDAORAprovider_name,指定用于 Oracle 数据库实例的 SQL*Net 别名为 data_ source

    以下示例假设已将一个 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 数据库实例仅有一个名称为空的目录。Oracle 链接服务器中的表必须使用四部分名称格式 OracleLinkedServerName..OwnerUserName.TableName 进行引用。例如,以下 SELECT 语句引用 Oracle 用户 MARY 在 OrclDB 链接服务器映射的服务器上所拥有的表 SALES。

SELECT *FROM OrclDB..MARY.SALES

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

  • 如果在 Oracle 中创建的表名和列名没有引用的标识符,请全部使用大写字母名称。

  • 如果在 Oracle 中创建的表名和列名有引用的标识符,请全部使用与 Oracle 中创建名称时相同的字母大小写格式。

  • INSERT 语句应为表中的所有列提供值,即使表中的某些列为 NULL 或有默认值。
注册表项

若要启用用于 Oracle 的 OLE DB 提供程序以与 Oracle 客户端软件一起使用,必须从命令行运行注册表文件以修改客户端的注册表。不应同时运行客户端软件的多个实例。这些文件都列在下表中并位于同一目录结构中,而该目录结构包含通常在 C:/Program Files/Common Files/System Files/OLE DB 中的 Microsoft 数据访问组件 (MDAC) 安装。

Oracle 客户端 Windows NT 或 9x Windows 2000 7.x mtxoci7x_winnt.reg mtxoci7x_win2k.reg 8.0 mtxoci80x_winnt.reg mtxoci80x_win2k.reg 8.1 mtxoci81x_winnt.reg mtxoci81x_win2k.reg