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 |
|