DB2 - Problem description
Problem IC77406 | Status: Closed |
PARAMETER MARKER FOR AN ARRAY TYPE IN AN ANONYMOUS BLOCK FAILS WITH SQL0408N | |
product: | |
DB2 FOR LUW / DB2FORLUW / 970 - DB2 | |
Problem description: | |
An SQL0408N error is returned when a parameter marker is used in an anonymous block to pass a value with an array data type. Here is an example where the parameter marker in the anonymous block is input to a procedure in a CALL statement, though the error will be reported no matter how the parameter marker is used: create type myarray as integer array[10] DB20000I The SQL command completed successfully. create procedure myproc (in p1 myarray) begin end DB20000I The SQL command completed successfully. create procedure myproc2() begin declare v1 myarray; -- prepare st from 'begin call myproc(cast (? as myarray)); end'; -- execute st using v1; -- end DB20000I The SQL command completed successfully. call myproc2() SQL0408N A value is not compatible with the data type of its assignment target. Target name is "?". LINE NUMBER=1. SQLSTATE=42821 | |
Problem Summary: | |
**************************************************************** * USERS AFFECTED: * * All users of DB2 LUW version 9.7 up to and including fix * * pack 4. * **************************************************************** * PROBLEM DESCRIPTION: * * An SQL0408N error is returned when a parameter marker is * * used in * * an anonymous block to pass a value with an array data type. * * * * Here is an example where the parameter marker in the * * anonymous * * block is input to a procedure in a CALL statement, though * * the * * error will be reported no matter how the parameter marker is * * * * used: * * * * * * * * create type myarray as integer array[10] * * * * DB20000I The SQL command completed successfully. * * * * * * * * create procedure myproc (in p1 myarray) * * * * begin end * * * * DB20000I The SQL command completed successfully. * * * * * * * * create procedure myproc2() * * * * begin * * * * declare v1 myarray; -- * * * * prepare st from 'begin call myproc(cast (? as myarray)); * * end';-- * * * * execute st using v1; -- * * * * end * * * * DB20000I The SQL command completed successfully. * * * * * * * * call myproc2() * * * * SQL0408N A value is not compatible with the data type of * * its * * assignment target. Target name is "?". LINE NUMBER=1. * * SQLSTATE=42821 * **************************************************************** * RECOMMENDATION: * * Upgrade to DB2 LUW version 9.7 fix pack 5 * **************************************************************** | |
Local Fix: | |
There is not a local fix for this problem. The parameter marker representing an array data type must be removed from the anonymous block for execution of the anonymous block to succeed. | |
available fix packs: | |
DB2 Version 9.7 Fix Pack 5 for Linux, UNIX, and Windows | |
Solution | |
Workaround | |
not known / see Local fix | |
Comment | |
Fix release: DB2 LUW version 9.7 fix pack 5 Fix commitment level: 999 | |
Timestamps | |
Date - problem reported : Date - problem closed : Date - last modified : | 07.07.2011 08.12.2011 08.12.2011 |
Problem solved at the following versions (IBM BugInfos) | |
9.7.FP5 | |
Problem solved according to the fixlist(s) of the following version(s) | |
9.7.0.5 |