When you use Microsoft OLE DB Provider for DB2 v3.0 to import IBM DB2 data, the data is corrupted. This issue occurs when you use Microsoft SQL Server Integration Services (SSIS) or Distributed Query Processor (DQP) to cast the data as a Unicode data type. For example, this issue occurs when you run the following code:
EXEC ('SELECT CAST(LTRIM(RTRIM(COL1)) AS nvarchar(25)) AS COLUMN1,CAST(LTRIM(RTRIM(COL2)) AS nvarchar(100)) AS COLUMN2 FROM MYTABLE') at MYLINKEDSERVER
This issue occurs because OLE DB Provider for DB2 v3.0 does not support certain new Unicode types. IBM DB2 for iSeries v6r1 and DB2 LUW 9.7 Fix Pack 2 introduced the following three Unicode data types: NCHAR, NVARCHAR, and NCLOB. These data types are double-byte characters that are tagged with Unicode (UTF16) CCSID 1200.
For example, assume that you define a column as follows:
This definition is the same as the following:
CustomerName VARGRAPHIC(35) CCSID 1200
Similarly, NCHAR is the same as GRAPHIC CCSID 1200, and NCLOB is the same as DBCLOB CCSID 1200. OLE DB Provider for DB2 v3.0 reads the data as double-byte character set (DBCS) CCSID 65535 data instead of as Unicode (CCSID 1200) data.
After you apply this hotfix, OLE DB Provider for DB2 v3.0 reads the data correctly as a Unicode code page in the situation that is described in the "Symptoms" section.
A supported hotfix is available from Microsoft. However, this hotfix is intended to correct only the problem that is described in this article. Apply this hotfix only to systems that are experiencing this specific problem.
If the hotfix is available for download, there is a "Hotfix download available" section at the top of this Knowledge Base article. If this section does not appear, submit a request to Microsoft Customer Service and Support to obtain the hotfix.
Note If additional issues occur or if any troubleshooting is required, you might have to create a separate service request. The usual support costs will apply to additional support questions and issues that do not qualify for this specific hotfix. For a complete list of Microsoft Customer Service and Support telephone numbers or to create a separate service request, visit the following Microsoft website:
Note The "Hotfix download available" form displays the languages for which the hotfix is available. If you do not see your language, it is because a hotfix is not available for that language.
To apply this hotfix, you must have OLE DB Provider for DB2 v3.0 installed.
You may have to restart the computer after you apply the hotfix.
The English version of this hotfix has the file attributes (or later file attributes) that are listed in the following table. The dates and times for these files are listed in Coordinated Universal Time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time item in Control Panel.
This issue is resolved in Microsoft OLE DB Provider for DB2 v4.0 that was released as a part of Microsoft SQL Server 2012 Feature Pack. To download SQL Server 2012 Feature Pack, visit the following Microsoft website:
The third-party products that this article discusses are manufactured by companies that are independent of Microsoft. Microsoft makes no warranty, implied or otherwise, about the performance or reliability of these products.
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.