DB2 - Problembeschreibung
Problem IC61662 | Status: Geschlossen |
COMMAS IN STRING VALUES FOR ARRAYS ARE NOT RESPECTED BY CLP IN THE PARSING | |
Produkt: | |
DB2 FOR LUW / DB2FORLUW / 970 - 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: * * 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() | |
verfügbare FixPacks: | |
DB2 Version 9.7 Fix Pack 1 for Linux, UNIX, and Windows | |
Lösung | |
This problem is fixed in db2_v95fp5, db2_v97fp1 and later releases. | |
Workaround | |
keiner bekannt / siehe Local-Fix | |
Weitere Daten | |
Datum - Problem gemeldet : Datum - Problem geschlossen : Datum - der letzten Änderung: | 23.06.2009 22.12.2009 22.12.2009 |
Problem behoben ab folgender Versionen (IBM BugInfos) | |
Problem behoben lt. FixList in der Version | |
9.7.0.1 |