DB2 - Problem description
Problem IC63517 | Status: Closed |
UNEXPECTED ERROR WHEN ROW FIELD IS DIRECTLY REFERENCED AFTER INVOCATION OF FUNCTION THAT RETURNS ROW IN PL/SQL | |
product: | |
DB2 FOR LUW / DB2FORLUW / 970 - DB2 | |
Problem description: | |
Unexpected behavior can occur when a row field is referenced in a PL/SQL expression immediately after invoking a user-defined function that returns a row type. For example, if type rtype and function rfunc are defined as in the following package: create or replace package pkg as type rtpye is record (field1 number); function rfunc(parm1 integer) return rtype; end pkg; then the following statement will fail with an SQL1224N error: DECLARE var1 number; BEGIN var1 := rfunc(10).field1; END | |
Problem Summary: | |
**************************************************************** * USERS AFFECTED: * * All DB2 UDB systems on Linux, Unix, and Windows platforms at * * service levels on Version 9.7.0 * **************************************************************** * PROBLEM DESCRIPTION: * * Unexpected behavior can occur when a row field is referenced * * in * * a PL/SQL expression immediately after invoking a * * user-defined * * function that returns a row type. * * For example, if type rtype and function rfunc are defined as * * in * * the following package: * * * * create or replace package pkg * * as * * type rtpye is record (field1 number); * * * * function rfunc(parm1 integer) return rtype; * * end pkg; * * * * then the following statement will fail with an SQL1224N * * error: * * * * DECLARE * * var1 number; * * BEGIN * * var1 := rfunc(10).field1; * * END * **************************************************************** * RECOMMENDATION: * * Upgrade to product version 9.7 fix pack 1. * **************************************************************** | |
Local Fix: | |
Store the result of invoking the function in a temporary variable, and select the field from the temporary variable, as shown below. DECLARE temp rtype; var1 number; BEGIN temp := rfunc(10); var1 := temp.field1; END | |
available fix packs: | |
DB2 Version 9.7 Fix Pack 1 for Linux, UNIX, and Windows | |
Solution | |
Problem first fixed in Version 9.7 Fix Pack 1. | |
Workaround | |
not known / see Local fix | |
Timestamps | |
Date - problem reported : Date - problem closed : Date - last modified : | 01.10.2009 05.02.2010 05.02.2010 |
Problem solved at the following versions (IBM BugInfos) | |
9.7.FP1 | |
Problem solved according to the fixlist(s) of the following version(s) | |
9.7.0.1 |