Latest versionsfixlist
11.1.0.7 FixList
10.5.0.9 FixList
10.1.0.6 FixList
9.8.0.5 FixList
9.7.0.11 FixList
9.5.0.10 FixList
9.1.0.12 FixList
Have problems? - contact us.
Register for free anmeldung-x26
Contact form kontakt-x26

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
DB2 Version 9.7 Fix Pack 2 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 3 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 3a for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 4 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 5 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 7 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 9a for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 6 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 8 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 9 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 10 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 FixList