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 IT16651 Status: Closed

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

product:
DB2 FOR LUW / DB2FORLUW / A50 - 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:                                              * 
* ALL                                                          * 
**************************************************************** 
* PROBLEM DESCRIPTION:                                         * 
* See Error Description                                        * 
**************************************************************** 
* RECOMMENDATION:                                              * 
* Upgrade to DB2 10.5 FP8                                      * 
****************************************************************
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.
Solution
Workaround
not known / see Local fix
Timestamps
Date  - problem reported    :
Date  - problem closed      :
Date  - last modified       :
17.08.2016
10.01.2017
22.03.2017
Problem solved at the following versions (IBM BugInfos)
Problem solved according to the fixlist(s) of the following version(s)