OLE DB Provider for DB2
Microsoft OLE DB Provider for DB2 是随 Microsoft Host Integration Server 2004 一起分发的,它使得 SQL Server 2005 分布式查询可以查询 DB2 数据库中的数据。
注意: |
---|
OLE DB Provider for DB2 包含在 SQL Server 2005 中。有关如何安装和配置 OLE DB 访问接口的信息,请参阅该访问接口附带的文档。 |
创建链接服务器以访问 DB2 数据库
在运行 SQL Server 实例的计算机上安装 Host Integration Server 2004 客户端软件,并选择安装 OLE DB Provider for DB2 的选项。
确定 OLE DB Provider for DB2 访问您要查询的 DB2 数据源时所需的连接字符串。确定连接字符串的最佳方法是使用 Host Integration Server 新 OLE DB 数据源应用程序生成数据链接文件。有关详细信息,请参阅 Microsoft Host Integration Server 2004 文档。
执行 sp_addlinkedserver 以创建链接服务器,指定 DB2OLEDB 为 provider_name,指定包含您要访问的数据的 DB2 目录名为 catalog,并指定步骤 2 中的连接字符串为 provider_string。
以下示例显示了如何使用
sp_addlinkedserver
来创建用于访问 DB2 数据库的链接服务器定义:EXEC sp_addlinkedserver @server = 'DB2SRV', @srvproduct = 'Microsoft OLE DB Provider for DB2', @catalog = 'SEATTLE', @provider = 'DB2OLEDB', @provstr = 'NetLib=SNA;NetAddr=;NetPort=;RemoteLU=SEATTLE;LocalLU=LOCAL; ModeName=QPCSUPP;InitCat=SEATTLE; Default Schema=WNW3XX;PkgCol=WNW3XX;TPName=;Commit=YES; IsoLvl=NC;AccMode=;CCSID=37;PCCodePage=1252;BinAsChar=NO; Data Source=Seattle_WNW3XX'
执行 sp_addlinkedsrvlogin 以创建从 SQL Server 2005 登录名到 DB2 登录名的登录名映射。
以下示例将 SQL Server 登录名
SQLJoe
映射为了 DB2 登录名DB2Joe
:EXEC sp_addlinkedsrvlogin 'DB2SRV', false, 'SQLJoe', 'DB2Joe', 'x894jd03?'
注意: 密码未经加密而进行传输。在保存到磁盘的数据源定义和脚本、备份以及日志文件中可能会看到密码。在此类连接中,切勿使用管理员密码。有关特定于环境的安全指南,请咨询您的网络管理员。
完成上述步骤之后,可以将链接服务器的名称 DB2SRV
用作由四个部分组成的名称中的服务器名称,并在 OPENQUERY
函数中用作 linked_server。例如:
SELECT *
FROM DB2SRV.SEATTLE.WNW3XX.DEPARTMENT
或
SELECT *
FROM OPENQUERY(DB2SRV, 'SELECT * FROM SEATTLE.WNW3XX.EMP_ACT')
当针对 DB2 数据源的分布式查询涉及 NULL 值的比较时,请使用 IS NULL 或 IS NOT NULL,而不使用比较运算符,例如等号 (=)、大于号 (>) 或小于号 (<)。另外,INSERT 语句应为表中的所有列提供值,即使表中的某些列为 NULL 或具有默认值。
请参阅
概念
与 SQL Server 一起测试过的 OLE DB 访问接口
分布式查询
其他资源
sp_addlinkedserver (Transact-SQL)
sp_addlinkedsrvlogin (Transact-SQL)