home clear 64x64
en blue 200x116 de orange 200x116 info letter User
suche 36x36
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