home clear 64x64
en blue 200x116 de orange 200x116 info letter User
suche 36x36
Neueste VersionenFixList
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
Haben Sie Probleme? - Kontaktieren Sie uns.
Kostenlos registrieren anmeldung-x26
Kontaktformular kontakt-x26

DB2 - Problembeschreibung

Problem IC68779 Status: Geschlossen

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

Produkt:
DB2 FOR LUW / DB2FORLUW / 970 - DB2
Problembeschreibung:
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-Zusammenfassung:
**************************************************************** 
* 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.
verfügbare FixPacks:
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

Lösung
This was first fixed by V97 FP4
Workaround
keiner bekannt / siehe Local-Fix
Bug-Verfolgung
Vorgänger  : APAR is sysrouted TO one or more of the following: IC69431 
Nachfolger : 
Weitere Daten
Datum - Problem gemeldet    :
Datum - Problem geschlossen :
Datum - der letzten Änderung:
21.05.2010
09.05.2011
09.05.2011
Problem behoben ab folgender Versionen (IBM BugInfos)
9.7.,
9.7.FP4
Problem behoben lt. FixList in der Version
9.7.0.4 FixList