suche 36x36
Latest versionsfixlist
11.1.0.7 FixList
10.5.0.9 FixList
10.1.0.6 FixList
9.8.0.5 FixList
9.7.0.11 FixList
9.5.0.10 FixList
9.1.0.12 FixList
Have problems? - contact us.
Register for free anmeldung-x26
Contact form kontakt-x26

DB2 - Problem description

Problem IT16703 Status: Closed

DB2 MAY RETURN INCORRECT RESULTS WHEN USING STRING EQUALITY PREDICATES
CONTAINING DIFFERING CODE UNITS

product:
DB2 FOR LUW / DB2FORLUW / B10 - DB2
Problem description:
When using string equality predicates containing strings that 
have differing code units (OCTETS, CODEUNITS16, CODEUNITS32), 
DB2 may return incorrect results. Keep in mind that the default 
code units used may differ depending on the current string_units 
and nchar_mapping database configuration parameters and the 
NLS_STRING_UNITS global variable. 
 
Example (with the default string_units database config parameter 
set to SYSTEM): 
 
CREATE TABLE T1 (a CHAR(2 CODEUNITS32) NOT NULL, b CHAR(5 
CODEUNITS32) NOT NULL) 
 
INSERT INTO T1 VALUES ('12', '345') 
 
SELECT a||b FROM T1 WHERE a='12' AND a||b LIKE '%12345%' 
 
Incorrect result: 
 
1 
---------------------------- 
 
  0 record(s) selected.
Problem Summary:
**************************************************************** 
* USERS AFFECTED:                                              * 
* CODEUINTS usage                                              * 
**************************************************************** 
* PROBLEM DESCRIPTION:                                         * 
* See Error Description                                        * 
**************************************************************** 
* RECOMMENDATION:                                              * 
* See Error Description. Please, install this fix.             * 
****************************************************************
Local Fix:
In the example above, either modify the string_units database 
config parameter to match the string constant's code units 
(OCTETS) with the column's (CODEUNITS32), or ensure each string 
reference in the equality expression uses the same code units by 
casting when needed: 
 
SELECT a||b FROM T1 WHERE CHAR(a)='12' AND a||b LIKE '%12345%' 
 
1 
---------------------------- 
12345 
 
  1 record(s) selected.
available fix packs:
DB2 Version 11.1 Mod1 Fix Pack1 iFix001 for Linux, UNIX, and Windows
DB2 Version 11.1 Mod 2 Fix Pack 2 for Linux, UNIX, and Windows
Db2 Version 11.1 Mod2 Fix Pack2 iFix001 for Linux, UNIX, and Windows
Db2 Version 11.1 Mod2 Fix Pack2 iFix002 for Linux, UNIX, and Windows
Db2 Version 11.1 Mod 3 Fix Pack 3 for Linux, UNIX, and Windows
Db2 Version 11.1 Mod3 Fix Pack3 iFix001 for Linux, UNIX, and Windows
Db2 Version 11.1 Mod3 Fix Pack3 iFix002 for Linux, UNIX, and Windows

Solution
See Error Description. Please, install this fix.
Workaround
not known / see Local fix
Timestamps
Date  - problem reported    :
Date  - problem closed      :
Date  - last modified       :
22.08.2016
10.10.2017
10.10.2017
Problem solved at the following versions (IBM BugInfos)
Problem solved according to the fixlist(s) of the following version(s)
11.1.1.1 FixList