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

COMMAS IN STRING VALUES FOR ARRAYS ARE NOT RESPECTED BY CLP IN THE PARSING

Produkt:
DB2 FOR LUW / DB2FORLUW / 950 - DB2
Problembeschreibung:
The following scenario is triggering a -104 error because the 
CLP code is not properly handling commas when parsing array 
elements. 
 
create TYPE VARIABLE_VALUES AS VARCHAR(1200) ARRAY[100] 
create procedure TEST1( 
     IN VARIABLES VARIABLE_VALUES ) 
LANGUAGE SQL 
 
BEGIN ATOMIC 
END@ 
 
When the procedure with a comma in the first array element is 
called, getting the following error : 
 
call TEST1( ARRAY[ '${email/attachments}=d:/tmp/a.a, 
d:/tmp/b.b', '${email/sender}= jpparkin@ca.ibm.com' ] ) 
SQL0104N  An unexpected token "ARRAY[" was found following "". 
Expected tokens may include:  "<name>".  SQLSTATE=42601 
 
If the comma out of the string value is left out, then the SQL 
works. 
 
call TEST1( ARRAY[ '${email/attachments}=d:/tmp/a.a d:/tmp/b.b', 
'${email/sender}= jpparkin@ca.ibm.com' ] ) 
 
  Return Status = 0
Problem-Zusammenfassung:
**************************************************************** 
* USERS AFFECTED:                                              * 
* All db2 users which are using array element values with      * 
* comma as a part inside stored procedure.                     * 
**************************************************************** 
* PROBLEM DESCRIPTION:                                         * 
* The following scenario is triggering a -104 error because    * 
* the                                                          * 
* CLP code is not properly handling commas when parsing array  * 
*                                                              * 
* elements.                                                    * 
*                                                              * 
* create TYPE VARIABLE_VALUES AS VARCHAR(1200) ARRAY[100]      * 
*                                                              * 
* create procedure TEST1(                                      * 
*     IN VARIABLES VARIABLE_VALUES )                           * 
* LANGUAGE SQL                                                 * 
*                                                              * 
* BEGIN ATOMIC                                                 * 
* END@                                                         * 
*                                                              * 
* When the procedure with a comma in the first array element   * 
* is                                                           * 
* called, getting the following error :                        * 
*                                                              * 
* call TEST1( ARRAY[ '${email/attachments}=d:/tmp/a.a,         * 
* d:/tmp/b.b', '${email/sender}= jpparkin@ca.ibm.com' ] )      * 
*                                                              * 
* SQL0104N  An unexpected token "ARRAY[" was found following   * 
* "".                                                          * 
* Expected tokens may include:  "<name>".  SQLSTATE=42601      * 
*                                                              * 
* If the comma out of the string value is left out, then the   * 
* SQL                                                          * 
* works.                                                       * 
*                                                              * 
* call TEST1( ARRAY[ '${email/attachments}=d:/tmp/a.a          * 
* d:/tmp/b.b','${email/sender}= jpparkin@ca.ibm.com' ] )       * 
*                                                              * 
*      Return Status = 0                                       * 
**************************************************************** 
* RECOMMENDATION:                                              * 
* Upgrade to db2_v95fp5 or db2_v97fp1 or heigher releases.     * 
****************************************************************
Local-Fix:
Possible workaround: 
 
CREATE PROCEDURE caller() 
BEGIN 
   call TEST1( ARRAY[ '${email/attachments}=d:/tmp/a.a, 
d:/tmp/b.b', '${email/sender}= jpparkin@ca.ibm.com' ] ); 
END 
 
CALL caller()
verfügbare FixPacks:
DB2 Version 9.5 Fix Pack 5 for Linux, UNIX, and Windows
DB2 Version 9.5 Fix Pack 6a for Linux, UNIX, and Windows
DB2 Version 9.5 Fix Pack 7 for Linux, UNIX, and Windows
DB2 Version 9.5 Fix Pack 8 for Linux, UNIX, and Windows
DB2 Version 9.5 Fix Pack 9 for Linux, UNIX, and Windows
DB2 Version 9.5 Fix Pack 10 for Linux, UNIX, and Windows

Lösung
db2_v95fp5 contains the fix of this issue. After this fix, user 
could use comma under string elements of array inside a stored 
procedure. The sql command will execute successfully.
Workaround
keiner bekannt / siehe Local-Fix
Bug-Verfolgung
Vorgänger  : APAR is sysrouted TO one or more of the following: IC61662 
Nachfolger : 
Weitere Daten
Datum - Problem gemeldet    :
Datum - Problem geschlossen :
Datum - der letzten Änderung:
18.06.2009
22.12.2009
22.12.2009
Problem behoben ab folgender Versionen (IBM BugInfos)
Problem behoben lt. FixList in der Version
9.5.0.5 FixList