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 IC68772 Status: Geschlossen

CONCAT OR "||" NOT PUSHED DOWN TO ORACLE DATA SOURCE

Produkt:
DB2 FOR LUW / DB2FORLUW / 980 - DB2
Problembeschreibung:
"CONCAT" or "||" (these two are in fact the same thing) are 
blocked from being pushed down since V97 GA. This can cause 
various operations like predicates or other parts of query not 
being pushed down, hence result in performance problems. 
 
They are blocked since "CONCAT" in Oracle has different 
semantics in handling NULL values, that is, e.g. a CONCAT(C1, 
NULL) will return NULL in Federation Server / DB2, but will 
return C1 in Oracle. In V95, we tolerate such difference and 
pushed down CONCAT predicate to Oracle. But in V97, we decided 
to block it. 
 
In fact, it is tolerable to pushdown the function in most cases. 
 
The problem may happen when all of the following conditions are 
met: 
1. The query contains nicknames from Oracle datasource, or DB2 
datasource that is in Varchar2 compatibility mode 
2. The query has one or both of following expressions 
   1) predicate with CONCAT, e.g. CONCAT(C1, C2) 
   2) predicate with "||", e.g. C1 || "A"
Problem-Zusammenfassung:
**************************************************************** 
* USERS AFFECTED:                                              * 
* all platforms                                                * 
**************************************************************** 
* PROBLEM DESCRIPTION:                                         * 
* "CONCAT" or "||" (these two are in fact the same thing) are  * 
*                                                              * 
* blocked from being pushed down since V97 GA. This can cause  * 
*                                                              * 
* various operations like predicates or other parts of query   * 
* not                                                          * 
* being pushed down, hence result in performance problems.     * 
*                                                              * 
*                                                              * 
*                                                              * 
* They are blocked since "CONCAT" in Oracle has different      * 
*                                                              * 
* semantics in handling NULL values, that is, e.g. a           * 
* CONCAT(C1,                                                   * 
* NULL) will return NULL in Federation Server / DB2, but will  * 
*                                                              * 
* return C1 in Oracle. In V95, we tolerate such difference and * 
*                                                              * 
* pushed down CONCAT predicate to Oracle. But in V97, we       * 
* decided                                                      * 
* to block it.                                                 * 
*                                                              * 
*                                                              * 
*                                                              * 
* In fact, it is tolerable to pushdown the function in most    * 
* cases.                                                       * 
*                                                              * 
*                                                              * 
* The problem may happen when all of the following conditions  * 
* are                                                          * 
* met:                                                         * 
*                                                              * 
* 1. The query contains nicknames from Oracle datasource, or   * 
* DB2                                                          * 
* datasource that is in Varchar2 compatibility mode            * 
*                                                              * 
* 2. The query has one or both of following expressions        * 
*                                                              * 
* 1) predicate with CONCAT, e.g. CONCAT(C1, C2)                * 
*                                                              * 
* 2) predicate with "||", e.g. C1 || "A"                       * 
**************************************************************** 
* RECOMMENDATION:                                              * 
* upgrade to v98fp4                                            * 
****************************************************************
Local-Fix:
verfügbare FixPacks:
DB2 Version 9.8 Fix Pack 4 for AIX and Linux
DB2 Version 9.8 Fix Pack 5 for AIX and Linux

Lösung
fixed in v98fp4
Workaround
N/A
Weitere Daten
Datum - Problem gemeldet    :
Datum - Problem geschlossen :
Datum - der letzten Änderung:
26.05.2010
06.04.2011
06.04.2011
Problem behoben ab folgender Versionen (IBM BugInfos)
9.8.FP4
Problem behoben lt. FixList in der Version
9.8.0.4 FixList