DB2 - Problem description
Problem IC62992 | Status: Closed |
INTERLEAVE INSERTION IN NON-SEQUENTIAL ORDER INSERTS WRONG DATA IN COLUMN | |
product: | |
DB2 FOR LUW / DB2FORLUW / 950 - DB2 | |
Problem description: | |
If cli driver is used to insert data into table of a database and sql_attr_interleaved_putdata is set, CLI will insert garbage data into the table, if application is providing data in non-sequential order for those columns for which DATA_AT_EXEC is set. If interleaving is enabled, we can provide data in columns for which DATA_AT_EXEC is set using the combination of SQLParamData and SQLPutData in non-sequential order. But, CLI does not insert the data in the intended column. For example : Create a table whose columns are like : c1 int, c2 clob(1K), c3 clob(1K), c4 clob(1K). enable DATA_AT_EXEC for last 3 lob columns. Now, give the data in the following order : for C2 - AAAA, for C4 - aaa, again for C2 - AAAA, and then for C3 - 11. After insertion of data in the table , run the select query or Fetch the data from the table, the output will be as below : C1 C2 C3 C4 10, AAAAAAAA, aaa11, "" For correct behaviour of CLI, the output should be: 10, AAAAAAAA, 11, aaa | |
Problem Summary: | |
**************************************************************** * USERS AFFECTED: * * problem can occur in all environment where db2 can be used. * **************************************************************** * PROBLEM DESCRIPTION: * * If cli driver is used to insert data into table of a * * database * * and sql_attr_interleaved_putdata is set, CLI will insert * * garbage * * data into the table, if application is providing data in * * * * non-sequential order for those columns for which * * DATA_AT_EXEC is * * set. * * * * * * * * If interleaving is enabled, we can provide data in columns * * for * * which DATA_AT_EXEC is set using the combination of * * SQLParamData * * and SQLPutData in non-sequential order. But, CLI does not * * insert * * the data in the intended column. For example : * * * * * * * * Create a table whose columns are like : c1 int, c2 clob(1K), * * c3 * * clob(1K), c4 clob(1K). * * * * enable DATA_AT_EXEC for last 3 lob columns. * * * * Now, give the data in the following order : * * * * for C2 - AAAA, * * * * for C4 - aaa, * * * * again for C2 - AAAA, * * * * and then for C3 - 11. * * * * * * * * After insertion of data in the table , run the select query * * or * * Fetch the data from the table, the output will be as below : * * * * C1 C2 C3 C4 * * * * 10, AAAAAAAA, aaa11, "" * * * * * * * * For correct behaviour of CLI, the output should be: * * * * 10, AAAAAAAA, 11, aaa * **************************************************************** * RECOMMENDATION: * * Give the column data in sequential order. Upgrade to * * db2_v95fp5 or v97fp1 or * * heigher version. * **************************************************************** | |
Local Fix: | |
Give the column data in sequential order. v95fp5 or v97fp1 or heigher version fixes this issue. | |
available fix packs: | |
DB2 Version 9.5 Fix Pack 5 for Linux, UNIX, and Windows | |
Solution | |
db2_v95fp5, db2_v97fp1 or later releases has the fix. | |
Workaround | |
not known / see Local fix | |
BUG-Tracking | |
forerunner : APAR is sysrouted TO one or more of the following: IC62999 follow-up : | |
Timestamps | |
Date - problem reported : Date - problem closed : Date - last modified : | 04.09.2009 22.12.2009 22.12.2009 |
Problem solved at the following versions (IBM BugInfos) | |
9.7.FP1 | |
Problem solved according to the fixlist(s) of the following version(s) | |
9.5.0.5 |