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

Syntax error while parsing big call statements having multiple escape
clauses

Produkt:
DB2 FOR LUW / DB2FORLUW / 970 - DB2
Problembeschreibung:
CLI is not parsing the escape clauses correctly for the big call 
statements which is having multiple escape clauses. 
 
For example: 
 
From the DB2 Command Window: 
 
db2 "create table abc.test(a int)" 
 
db2 "CREATE PROCEDURE insertDataA( IN a INT) BEGIN INSERT INTO 
abc.test VALUES (a); end" 
 
db2 "CALL insertDataA(case when month('10-10-2008') = 4 then 
month('10-10-2008') else month ('10-10-2008') - 1 end)" 
 
  Return Status = 0 
 
db2 "select * from abc.test" 
 
A 
----------- 
          9 
 
  1 record(s) selected. 
 
 
In the CLI application: 
 
We need to use the escape clauses as below. 
 
"{CALL  insertDataA(case when {fn month('10-10-2008')} = 4 then 
{fn month('10-10-2008')} else {fn month ('10-10-2008')} - 1 
end)}" 
 
However, it failed with the following error message. 
 
SQL0104N  An unexpected token "then" was found following 
"E('2008-10-10')) = 4".  Expected tokens may include:  "THEN 
<result>".  SQLSTATE=42601
Problem-Zusammenfassung:
**************************************************************** 
* USERS AFFECTED:                                              * 
* ALL                                                          * 
**************************************************************** 
* PROBLEM DESCRIPTION:                                         * 
* CLI is not parsing the escape clauses correctly for the big  * 
* call                                                         * 
* statements which is having multiple escape clauses.          * 
*                                                              * 
*                                                              * 
*                                                              * 
* For example:                                                 * 
*                                                              * 
*                                                              * 
*                                                              * 
* From the DB2 Command Window:                                 * 
*                                                              * 
*                                                              * 
*                                                              * 
* db2 "create table abc.test(a int)"                           * 
*                                                              * 
*                                                              * 
*                                                              * 
* db2 "CREATE PROCEDURE insertDataA( IN a INT) BEGIN INSERT    * 
* INTO                                                         * 
* abc.test VALUES (a); end"                                    * 
*                                                              * 
*                                                              * 
*                                                              * 
* db2 "CALL insertDataA(case when month('10-10-2008') = 4 then * 
*                                                              * 
* month('10-10-2008') else month ('10-10-2008') - 1 end)"      * 
*                                                              * 
*                                                              * 
*                                                              * 
* Return Status = 0                                            * 
*                                                              * 
*                                                              * 
*                                                              * 
* db2 "select * from abc.test"                                 * 
*                                                              * 
*                                                              * 
*                                                              * 
* A                                                            * 
*                                                              * 
* -----------                                                  * 
*                                                              * 
* 9                                                            * 
*                                                              * 
*                                                              * 
*                                                              * 
* 1 record(s) selected.                                        * 
*                                                              * 
*                                                              * 
*                                                              * 
*                                                              * 
*                                                              * 
* In the CLI application:                                      * 
*                                                              * 
*                                                              * 
*                                                              * 
* We need to use the escape clauses as below.                  * 
*                                                              * 
*                                                              * 
*                                                              * 
* "{CALL  insertDataA(case when {fn month('10-10-2008')} = 4   * 
* then                                                         * 
* {fn month('10-10-2008')} else {fn month ('10-10-2008')} - 1  * 
*                                                              * 
* end)}"                                                       * 
*                                                              * 
*                                                              * 
*                                                              * 
* However, it failed with the following error message.         * 
*                                                              * 
*                                                              * 
*                                                              * 
* SQL0104N  An unexpected token "then" was found following     * 
*                                                              * 
* "E('2008-10-10')) = 4".  Expected tokens may include:  "THEN * 
*                                                              * 
* <result>".  SQLSTATE=42601                                   * 
**************************************************************** 
* RECOMMENDATION:                                              * 
* Upgrade to DB2 Version 9.7 Fix Pack 1.                       * 
****************************************************************
Local-Fix:
n/a
verfügbare FixPacks:
DB2 Version 9.7 Fix Pack 1 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 2 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 3 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 3a for Linux, UNIX, and Windows
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 9a 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 10 for Linux, UNIX, and Windows

Lösung
Problem was first fixed in Version 9.7 Fix Pack 1.
Workaround
keiner bekannt / siehe Local-Fix
Weitere Daten
Datum - Problem gemeldet    :
Datum - Problem geschlossen :
Datum - der letzten Änderung:
11.09.2009
25.01.2010
25.01.2010
Problem behoben ab folgender Versionen (IBM BugInfos)
9.7.FP1
Problem behoben lt. FixList in der Version
9.7.0.1 FixList