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

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

product:
DB2 FOR LUW / DB2FORLUW / 950 - 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 9.5 Fix Pack 6                        * 
****************************************************************
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 )
Solution
First Fixed In DB2 Version 9.5 Fix Pack 6
Workaround
not known / see Local fix
Timestamps
Date  - problem reported    :
Date  - problem closed      :
Date  - last modified       :
17.03.2010
14.10.2010
14.10.2010
Problem solved at the following versions (IBM BugInfos)
9.5.FP6
Problem solved according to the fixlist(s) of the following version(s)