DB2 - Problem description
Problem IC62999 | Status: Closed |
INTERLEAVE INSERTION IN NON-SEQUENTIAL ORDER INSERTS WRONG DATA IN COLUMN | |
product: | |
DB2 FOR LUW / DB2FORLUW / 970 - 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 garbagedata into the table, if application is providing data in non-sequential order for those columns for which DATA_AT_EXEC isset. 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 insertthe 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: * * This issue is reproducible in all environment supported by * * db2cli. When user will try to insert interleaved data in * * non-sequential order, wrong data will be inserted into * * table. * **************************************************************** * 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 * * garbagedata into the table, if application is providing data * * in * * non-sequential order for those columns for which * * DATA_AT_EXEC isset. * * * * 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 insertthe 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 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.7 Fix Pack 1 for Linux, UNIX, and Windows | |
Solution | |
db2_v95fp5, db2_v97fp1 or heigher releases fixes this issue. After the fix user can do interleave insertion in non-sequential order. | |
Workaround | |
not known / see Local fix | |
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.7.0.1 |