A fix is available
APAR status
Closed as program error.
Error description
ABEND0C7 RC0 AT DSNXRDEC OFFSET 3D64.
Local fix
N/A
Problem summary
**************************************************************** * USERS AFFECTED: All DB2 9 and DB2 10 for z/OS users of * * decimal datatype and transitive closure. * **************************************************************** * PROBLEM DESCRIPTION: An ABEND0C7 RC00000000 occurred at * * DSNXRDEC +3EB2 in DB2 9 or at * * DSNXRDEC +59BC in DB2 10 * * when a transitive closure * * predicate was in the form of * * COLUMN = host-variable where the * * column was a not null decimal and * * a NULL value was sent in during * * execution time for the host variable. * **************************************************************** * RECOMMENDATION: * **************************************************************** An ABEND0C7 RC0 occurred at location DSNXRDEC +3EB2 in DB2 9 or an ABEND0C7 RC0 occurred at location DSNXRDEC +59BC in DB2 10 when a transitive closure predicate was in the form of COLUMN = host-variable where the column was a not null decimal and a NULL value was sent in during execution time for the host variable. The following example illustrates how this failure can occur. 1. Create two tables, T1 and T2. CREATE TABLE T1(C1 DEC(10,3) NOT NULL); CREATE TABLE T2(C1 DEC(11,3) NOT NULL); 2. Insert values into the two tables. INSERT INTO T1 VALUES(1.1); INSERT INTO T2 VALUES(1.1); 3. Select from two tables and DB2 generates a transitive closure predicate. SELECT 1 FROM T1, T2 WHERE T1.C1 = T2.C1 AND T1.C1 = :HV1; DB2 generated transitive closure predicate: T2.C1 = :HV1 When a NULL value is sent in for :HV1, the above SELECT statement results in an ABEND0C7 failure. that behaves as follows: When the NULL value was sent in, DB2 failed to set the NULL value in the not null buffer in the transitive closure predicate, which causes the ABEND0C7 condition. Please note that the same failure can occur when a typed or untyped parameter marker is used in the above predicates or when the transition variables are used in the same way in the predicates in a trigger package.
Problem conclusion
DB2 was modified to handle the NULL value correctly for the transitive closure predicate described in the example. Additional keywords: SQLNULL SQLTRANSITIVE SQLPREDICATE SQLHOSTVAR SQLPARAMETERMARKER OFFSET3EB2 OFFSET59BC
Temporary fix
Comments
APAR Information
APAR number
PM76452
Reported component name
DB2 OS/390 & Z/
Reported component ID
5740XYR00
Reported release
910
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2012-11-05
Closed date
2012-12-17
Last modified date
2013-01-02
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
UK90447 UK90448
Modules/Macros
DSNXOMEX
Fix information
Fixed component name
DB2 OS/390 & Z/
Fixed component ID
5740XYR00
Applicable component levels
Fix is available
Select the PTF appropriate for your component level. You will be required to sign in. Distribution on physical media is not available in all countries.
Rate this page:
Average rating
Copyright and trademark information
IBM, the IBM logo and ibm.com are trademarks of International Business Machines Corp., registered in many jurisdictions worldwide. Other product and service names might be trademarks of IBM or other companies. A current list of IBM trademarks is available on the Web at "Copyright and trademark information" at www.ibm.com/legal/copytrade.shtml.