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

Unexpected trailing blanks in results of DECODE function or CASE expression
in VARCHAR2 compatibility mode

product:
DB2 FOR LUW / DB2FORLUW / 970 - DB2
Problem description:
With VARCHAR2 compatibility mode, the result of a DECODE 
function or a CASE expression may have unexpected trailing 
blanks.  When the length of two result values are different and 
the shorter value is returned, it will be padded with trailing 
blanks up to the length of the longer value. 
 
Here is an example: 
 
db2set DB2_COMPATIBILITY_VECTOR=20 
db2stop 
db2start 
db2 create db sample 
 
db2 connect to sample 
db2 create table t1 (c1 char(13)) 
db2 insert into t1 values('ABCDEFG') 
 
db2 "SELECT '---'||DECODE('1','1','ABC','ABCDEFG')||'---'  FROM 
t1" 
   output:    ---ABC    --- 
 
db2 "SELECT '---'|| Case When '1'='1' Then 'ABC' Else 'ABCDEFG' 
End ||'---' FROM t1" 
   output:    ---ABC    --- 
 
Oracle gives output: ---ABC--- in both cases. 
 
db2 "SELECT '---'||DECODE('1','2','ABCDEFG','EFG')||'---' FROM 
t1" 
   output:     ---EFG    --- 
 
In all cases, the longer length of the decode/case values is 
picked up.
Problem Summary:
**************************************************************** 
* USERS AFFECTED:                                              * 
* ALL                                                          * 
**************************************************************** 
* PROBLEM DESCRIPTION:                                         * 
* With VARCHAR2 compatibility mode, the result of a DECODE     * 
* function or a CASE expression may have unexpected trailing   * 
* blanks.  When the length of two result values are different  * 
* and the shorter value is returned, it will be padded with    * 
* trailing blanks up to the length of the longer value.        * 
**************************************************************** 
* RECOMMENDATION:                                              * 
* Upgrade to version 9.7 FixPack4                              * 
****************************************************************
Local Fix:
Cast any of the result expression to VARCHAR.
available fix packs:
DB2 Version 9.7 Fix Pack 4 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 5 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 6 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 7 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 8 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 9 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 9a for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 10 for Linux, UNIX, and Windows

Solution
This was first fixed by V97 FP4
Workaround
not known / see Local fix
BUG-Tracking
forerunner  : APAR is sysrouted TO one or more of the following: IC69431 
follow-up : 
Timestamps
Date  - problem reported    :
Date  - problem closed      :
Date  - last modified       :
21.05.2010
09.05.2011
09.05.2011
Problem solved at the following versions (IBM BugInfos)
9.7.,
9.7.FP4
Problem solved according to the fixlist(s) of the following version(s)
9.7.0.4 FixList