home clear 64x64
en blue 200x116 de orange 200x116 info letter User
suche 36x36
Latest versionsfixlist
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
Have problems? - contact us.
Register for free anmeldung-x26
Contact form kontakt-x26

DB2 - Problem description

Problem IC61662 Status: Closed

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

product:
DB2 FOR LUW / DB2FORLUW / 970 - DB2
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
Problem Summary:
**************************************************************** 
* USERS AFFECTED:                                              * 
* This problem can occur in any environment for DB2.           * 
**************************************************************** 
* 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_v97fp1                                        * 
****************************************************************
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()
available fix packs:
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

Solution
This problem is fixed in db2_v95fp5, db2_v97fp1 and later 
releases.
Workaround
not known / see Local fix
Timestamps
Date  - problem reported    :
Date  - problem closed      :
Date  - last modified       :
23.06.2009
22.12.2009
22.12.2009
Problem solved at the following versions (IBM BugInfos)
Problem solved according to the fixlist(s) of the following version(s)
9.7.0.1 FixList