用于 Oracle 的 Microsoft OLE DB 访问接口(数据库引擎)
Oracle 的 Microsoft OLE DB 访问接口允许对 Oracle 数据库中的数据进行分布式查询。
创建链接服务器以访问 Oracle 数据库实例
确保运行 SQL Server 的服务器上的 Oracle 客户端软件已达到访问接口所要求的级别。Oracle 的 Microsoft OLE DB 访问接口需要 Oracle Client Software Support File 7.3.3.4.0 版或更高版本以及 SQL*Net 2.3.3.0.4 版。
在运行 SQL Server 的服务器上创建指向 Oracle 数据库实例的 SQL*Net 别名。有关详细信息,请参阅 Oracle 文档。
将 provider_name 指定为
MSDAORA
,将 data_ source 指定为 Oracle 数据库实例的 SQL*Net 别名,然后执行 sp_addlinkedserver 创建链接服务器。下面的示例假定 SQL*Net 别名已定义为
OracleDB
。sp_addlinkedserver 'OrclDB ','Oracle',' MSDAORA','OracleDB'
使用 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 或有默认值。
注册表项
若要启用 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 访问接口