DB2 - Problem description
Problem IC97288 | Status: Closed |
THE DBMS_LOB.COMPARE FUNCTION AND DBMS_LOB.READ PROCEDURE DO NOT PROCESS CLOBS CORRECTLY IF MULTI-BYTE CHARACTERS ARE PRESENT | |
product: | |
DB2 FOR LUW / DB2FORLUW / 970 - DB2 | |
Problem description: | |
The dbms_lob.compare function incorrectly expects the unit of measurement for the offset_1 and offset_2 parameters to be read in terms of the number of bytes, regardless of the type of data passed to the lob_1 and lob_2 parameters. Instead, the dbms_lob.compare function should use number of characters as the unit of measurement for these parameters in order to correctly handle multi-byte character sets. For example, the following call to the dbms_lob.compare function should compare the 2nd character of each string and return -1 because "a" is not equal to "b". However, it return 0 because it is comparing the second byte of the the double-byte character "チ" to the second byte of the character "チ". db2 "values(dbms_lob.compare(clob('チa'), clob('チb'), 1, 2, 2))" Similarly, the following command should fail with SQL0138N (A numeric argument of a built-in string function is out of range. SQLSTATE=22011), but it returns -1 instead. db2 "values(dbms_lob.compare(clob('チa'), clob('チb'), 1, 3, 3))" The problem can only be hit when the database codepage supports multi-byte characters. The dbms_lob.read procedure has the same problem with the "offset" and "amount" parameters. | |
Problem Summary: | |
**************************************************************** * USERS AFFECTED: * * Applications using DBMS_LOB.COMPARE AND /OR DBMS_LOB.READ * * with multi-byte character data * **************************************************************** * PROBLEM DESCRIPTION: * * See Error Description * **************************************************************** * RECOMMENDATION: * * Please, apply this APAR and recreate system modules using * * db2updvX command. * **************************************************************** | |
Local Fix: | |
available fix packs: | |
DB2 Version 9.7 Fix Pack 9 for Linux, UNIX, and Windows | |
Solution | |
Please, apply this APAR and recreate system modules using db2updvX command. | |
Workaround | |
not known / see Local fix | |
Timestamps | |
Date - problem reported : Date - problem closed : Date - last modified : | 29.10.2013 23.12.2013 06.11.2014 |
Problem solved at the following versions (IBM BugInfos) | |
Problem solved according to the fixlist(s) of the following version(s) | |
9.7.0.9 | |
9.7.0.9 |