home clear 64x64
en blue 200x116 de orange 200x116 info letter User
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 IC67266 Status: Closed

PREDICATE OF THE FORM "<CONCAT EXPRESSION> =
G'CONSTANT'" RESULTS IN WRONG DATA RETURNED FROM QUERY

product:
DB2 FOR LUW / DB2FORLUW / 910 - DB2
Problem description:
A query containing a predicate of the form "<CONCAT expression> 
= G'constant'" may return wrong results.  The CONCAT expression 
must be a concatenation of one or more GRAPHIC columns or 
GRAPHIC constants and the result size of each side of the 
predicate must be the same.  Here are some examples of 
problematic queries: 
 
          CREATE TABLE T1 ( G1 GRAPHIC(4), G2 GRAPHIC(3)) ); 
 
SELECT * FROM T1 WHERE ( G1|| G2 ) = G'ABCDXYZ'; 
SELECT * FROM T1 WHERE G'ABCDXYZ' = ( G'ABCD' || G2 )
Problem Summary:
**************************************************************** 
* USERS AFFECTED:                                              * 
* ALL                                                          * 
**************************************************************** 
* PROBLEM DESCRIPTION:                                         * 
* A query containing a predicate of the form "<CONCAT          * 
* expression> = G'constant'" may return wrong results.  The    * 
* CONCAT expression must be a concatenation of one or more     * 
* GRAPHIC columns or GRAPHIC constants and the result size of  * 
* each side of the predicate must be the same.  Here are some  * 
* examples of problematic queries:                             * 
*                                                              * 
* CREATE TABLE T1 ( G1 GRAPHIC(4), G2 GRAPHIC(3)) );           * 
*                                                              * 
* SELECT * FROM T1 WHERE ( G1|| G2 ) = G'ABCDXYZ';             * 
*                                                              * 
* SELECT * FROM T1 WHERE G'ABCDXYZ' = ( G'ABCD' || G2 )        * 
**************************************************************** 
* RECOMMENDATION:                                              * 
* Upgrade to DB2 Version Fix Pack 10                           * 
****************************************************************
Local Fix:
Add one or more trailing spaces to the GRAPHIC constant side of 
the predicate: 
 
SELECT * FROM T1 WHERE ( G1 || G2 ) = G'ABCDXYZ     '; 
SELECT * FROM T1 WHERE G'ABCDXYZ    ' = ( G'ABCD' || G2 )
available fix packs:
DB2 Version 9.1 Fix Pack 10  for Linux, UNIX and Windows
DB2 Version 9.1 Fix Pack 11  for Linux, UNIX and Windows
DB2 Version 9.1 Fix Pack 12  for Linux, UNIX and Windows

Solution
First Fixed in DB2 Version Fix Pack 10
Workaround
N/A
Comment
N/A
BUG-Tracking
forerunner  : APAR is sysrouted TO one or more of the following: IC70399 
follow-up : 
Timestamps
Date  - problem reported    :
Date  - problem closed      :
Date  - last modified       :
17.03.2010
16.06.2011
16.06.2011
Problem solved at the following versions (IBM BugInfos)
Problem solved according to the fixlist(s) of the following version(s)
9.1.0.10 FixList