【发布时间】:2015-11-24 15:33:26
【问题描述】:
我们有两台数据库服务器,它们都使用 SQL Server 2012,但操作系统不同。较旧的是使用 Windows Server 2008R2 Standard,而较新的是 Windows Server 2012R2 Standard,两者都是 x64。另一个区别是确切 SQL Server 的版本号,所以旧的是
- Microsoft SQL Server Management Studio 11.0.3128.0
- Microsoft 数据访问组件 (MDAC) 6.1.7601.17514
- 操作系统 6.1.7601
虽然较新:
- Microsoft SQL Server Management Studio 11.0.5343.0
- Microsoft 数据访问组件 (MDAC) 6.3.9600.17415
- 操作系统 6.3.9600
我已经创建了一个正常工作的链接服务器来从旧服务器上的 DB2/AS400 数据库中获取数据。我用Data Access Tool 4.0制作了一个连接字符串,得到如下:
Provider=DB2OLEDB;User ID=****;Initial Catalog=CAT;Network Transport Library=TCPIP;Host CCSID=37;PC Code Page=1252;Network Address=****;Network Port=446;Package Collection=DATA;Default Schema=DATA;Process Binary as Character=True;Units of Work=RUW;Default Qualifier=DATA;DBMS Platform=DB2/AS400;Use Early Metadata=False;Defer Prepare=False;DateTime As Char=False;Rowset Cache Size=0;Binary CodePage=0;Datetime As Date=False;AutoCommit=True;Database Name=TEST_DB;Authentication=Server;Decimal As Numeric=False;Derive Parameters=False;LoadBalancing=False;Persist Security Info=False;Cache Authentication=False;Connection Pooling=False;
现在我想在新的服务器上创建相同的链接服务器,但它无法将二进制数据转换为正确的。
例如旧服务器与新服务器的数据对比:
- "" === 0x404040
- M === 0xD4
新服务器上使用的连接字符串:
Provider=DB2OLEDB;User ID=****;Initial Catalog=CAT;Network Transport Library=TCPIP;Host CCSID=37;PC Code Page=1252;Network Address=****;Network Port=446;Package Collection=DATA;Default Schema=DATA;Process Binary as Character=True;Units of Work=RUW;Default Qualifier=DATA;DBMS Platform=DB2/AS400;Use Early Metadata=False;Defer Prepare=False;DateTime As Char=False;Rowset Cache Size=0;Binary CodePage=0;Datetime As Date=False;AutoCommit=True;Database Name=TEST_DB;Authentication=Server;Decimal As Numeric=False;Derive Parameters=False;LoadBalancing=False;Persist Security Info=False;Cache Authentication=False;Connection Pooling=False;
我已经试过了:
- 使用 Data Access Tool 4.0,因为它在过去已经工作过(Process Binary as Character = True)
- 使用 Data Access Tool 5.0 与 SQL Server 2012 更兼容(不包括 Process Binary 选项)
- 已从 MS 支持 (https://support.microsoft.com/en-us/kb/2993741) 安装修补程序
- 浏览了可能的设置并尝试了一些组合
- 比较已经工作的链接服务器和新创建的链接服务器
请帮助我如何解决这个问题!
【问题讨论】:
-
服务器运行的是什么版本的实际 SQL Server? (在每台服务器上使用
SELECT @@VERSION进行查找。Management Studio 的版本不相关;例如,您可以使用 SQL Server Management Studio 2014 连接到 SQL Server 2005。) -
旧版本:Microsoft SQL Server 2012 (SP1) - 11.0.3128.0 (X64) Dec 28 2012 20:23:12 版权所有 (c) Microsoft Corporation Standard Edition (64-bit) on Windows NT 6.1
(Build 7601: Service Pack 1) 新版本:Microsoft SQL Server 2012 - 11.0.5343.0 (X64) May 4 2015 19:11:32 版权所有 (c) Microsoft Corporation Standard Edition (64-bit) on Windows NT 6.3 (Build 9600: ) (Hypervisor)
标签: sql-server database db2 oledb db2-400