Fixes are available
APAR status
Closed as program error.
Error 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.
Local fix
Problem summary
**************************************************************** * USERS AFFECTED: * * All users * **************************************************************** * PROBLEM DESCRIPTION: * * See Error Description * **************************************************************** * RECOMMENDATION: * * Upgrade to DB2 version 10.1.0.4. * ****************************************************************
Problem conclusion
The problem is first fixed in DB2 version 10.1.0.4.
Temporary fix
Comments
APAR Information
APAR number
IC95046
Reported component name
DB2 FOR LUW
Reported component ID
DB2FORLUW
Reported release
A10
Status
CLOSED PER
PE
NoPE
HIPER
YesHIPER
Special Attention
NoSpecatt
Submitted date
2013-08-20
Closed date
2014-05-08
Last modified date
2014-05-26
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fix information
Fixed component name
DB2 FOR LUW
Fixed component ID
DB2FORLUW
Applicable component levels
RA10 PSN
UP
[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSEPGG","label":"Db2 for Linux, UNIX and Windows"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"10.1","Edition":"","Line of Business":{"code":"LOB10","label":"Data and AI"}}]
Document Information
Modified date:
26 May 2014