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