DB2 - Problembeschreibung
Problem IC63517 | Status: Geschlossen |
UNEXPECTED ERROR WHEN ROW FIELD IS DIRECTLY REFERENCED AFTER INVOCATION OF FUNCTION THAT RETURNS ROW IN PL/SQL | |
Produkt: | |
DB2 FOR LUW / DB2FORLUW / 970 - DB2 | |
Problembeschreibung: | |
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-Zusammenfassung: | |
**************************************************************** * 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 | |
verfügbare FixPacks: | |
DB2 Version 9.7 Fix Pack 1 for Linux, UNIX, and Windows | |
Lösung | |
Problem first fixed in Version 9.7 Fix Pack 1. | |
Workaround | |
keiner bekannt / siehe Local-Fix | |
Weitere Daten | |
Datum - Problem gemeldet : Datum - Problem geschlossen : Datum - der letzten Änderung: | 01.10.2009 05.02.2010 05.02.2010 |
Problem behoben ab folgender Versionen (IBM BugInfos) | |
9.7.FP1 | |
Problem behoben lt. FixList in der Version | |
9.7.0.1 |