Problem Note 18990: Incorrect data inserted into DB2 column defined as "CHAR() FOR BIT DATA"
Incorrect data is being inserted into DB2 using SAS/ACCESS® Interface to
ODBC. The problem surfaces if DB2 strings are defined as "CHAR() FOR
BIT DATA". When attempting to insert a string into a DB2 column defined
as "FOR BIT DATA", we pad the string with ‘30’x.
The following program illustrates the different behavior between DB2 and
SAS:
proc sql noprint;
connect to odbc (dsn=db2lunix user=sas pw=sas91pw);
execute (drop table bitdata) by odbc;
execute (create table bitdata (col1 char(6) for bit data)) by odbc;
execute (insert into bitdata values (x'414141')) by odbc;
disconnect from odbc;
quit;
bc;
libname db odbc dsn=db2lunix user=sas pw=sas91pw;
insert into db.bitdata values ('414141'x);
quit;
data _null_;
set db.bitdata;
put col1= $hex.;
run;
/* LOG :
COL1=414141202020
COL1=414141303030
*/
The problem was caused because the code was trying to pad binary data
with the character '0' for all cases of SQL_BINARY data.
To resolve this problem, apply the hotfix.
Select the Hot Fix tab in this note to access the hot fix for this issue.
Operating System and Release Information
| SAS System | SAS/ACCESS Interface to ODBC | Microsoft Windows XP Professional | 9.1 TS1M3 | 9.2 TS1M0 |
| Microsoft Windows NT Workstation | 9.1 TS1M3 | |
| Microsoft Windows XP 64-bit Edition | 9.1 TS1M3 | 9.2 TS1M0 |
| Microsoft® Windows® for 64-Bit Itanium-based Systems | 9.1 TS1M3 | 9.2 TS1M0 |
| Microsoft Windows Server 2003 Datacenter Edition | 9.1 TS1M3 | 9.2 TS1M0 |
| Microsoft Windows Server 2003 Enterprise Edition | 9.1 TS1M3 | 9.2 TS1M0 |
| Microsoft Windows Server 2003 Standard Edition | 9.1 TS1M3 | 9.2 TS1M0 |
| 64-bit Enabled HP-UX | 9.1 TS1M3 | 9.2 TS1M0 |
| Linux | 9.1 TS1M3 | 9.2 TS1M0 |
| 64-bit Enabled Solaris | 9.1 TS1M3 | 9.2 TS1M0 |
| Microsoft Windows 2000 Advanced Server | 9.1 TS1M3 | 9.2 TS1M0 |
| Microsoft Windows 2000 Professional | 9.1 TS1M3 | 9.2 TS1M0 |
| Microsoft Windows 2000 Server | 9.1 TS1M3 | 9.2 TS1M0 |
| Microsoft Windows 2000 Datacenter Server | 9.1 TS1M3 | 9.2 TS1M0 |
| 64-bit Enabled AIX | 9.1 TS1M3 | 9.2 TS1M0 |
| Tru64 UNIX | 9.1 TS1M3 | 9.2 TS1M0 |
*
For software releases that are not yet generally available, the Fixed
Release is the software release in which the problem is planned to be
fixed.
| Type: | Problem Note |
| Priority: | high |
| Topic: | SAS Reference ==> LIBNAME Engines Third Party ==> Information Exchange ==> ODBC (Open Database Connectivity)
|
| Date Modified: | 2008-03-05 10:41:10 |
| Date Created: | 2006-11-16 10:51:23 |