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

TO_DATE SCALAR FUNCTION IN IF STATEMENT FAILS WITH SQL20448N

Produkt:
DB2 FOR LUW / DB2FORLUW / 980 - DB2
Problembeschreibung:
The TO_DATE function - or its synonym TIMESTAMP_FORMAT - may 
return SQL20448N when used within an IF or ELSE statement.  The 
TO_DATE function is executed even though the condition is false. 
 For example: 
 
IF option = 'TIMESTAMP' THEN 
  SET result = TO_DATE( input, 'YYYY-MM-DD-HH24-MI-SS'); 
END IF; 
 
Regardless of the value of "option", the TO_DATE expression is 
evaluated using the value "input".  This may not be noticed if 
the evaluation is successful, however, if "input" is not a valid 
timestamp SQL20448N is returned.  If an error does not occur, 
the result is discarded, it is not assigned to "result". 
 
This only occurs in Compound SQL (inlined).
Problem-Zusammenfassung:
**************************************************************** 
* USERS AFFECTED:                                              * 
* DB2 UDB Version 9.8                                          * 
**************************************************************** 
* PROBLEM DESCRIPTION:                                         * 
* The TO_DATE function - or its synonym TIMESTAMP_FORMAT - may * 
* return SQL20448N when used within an IF or ELSE statement.   * 
* The TO_DATE function is executed even though the condition   * 
* is false.                                                    * 
* For example:                                                 * 
*                                                              * 
* IF option = 'TIMESTAMP' THEN                                 * 
* SET result = TO_DATE( input, 'YYYY-MM-DD-HH24-MI-SS');       * 
* END IF;                                                      * 
*                                                              * 
* Regardless of the value of "option", the TO_DATE expression  * 
* is evaluated using the value "input".  This may not be       * 
* noticed if the evaluation is successful, however, if "input" * 
* is not a valid timestamp SQL20448N is returned.  If an error * 
* does not occur, the result is discarded, it is not assigned  * 
* to "result".                                                 * 
*                                                              * 
* This only occurs in Compound SQL (inlined).                  * 
**************************************************************** 
* RECOMMENDATION:                                              * 
* Upgrade to DB2 UDB next release.                             * 
****************************************************************
Local-Fix:
Ensure the TO_DATE function arguments are valid regardless of 
the condition.  A simple way to do this with the example above 
is to use another variable that is initialized with a valid 
timestamp string: 
 
DECLARE to_date_input VARCHAR(14) DEFAULT '20081231233015'; 
... 
IF option = 'TIMESTAMP' THEN 
  SET to_date_input = input; 
  SET result = TO_DATE( to_date_input, 'YYYY-MM-DD-HH24-MI-SS'); 
END IF;
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
Workaround
keiner bekannt / siehe Local-Fix
Weitere Daten
Datum - Problem gemeldet    :
Datum - Problem geschlossen :
Datum - der letzten Änderung:
25.11.2010
05.08.2011
05.08.2011
Problem behoben ab folgender Versionen (IBM BugInfos)
Problem behoben lt. FixList in der Version
9.8.0.4 FixList