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 IC63140 Status: Closed

PSEUDO COLUMN ROWID AND SCALAR FUNCTIONS RID_BIT/RID DOES NOT RETURN
CORRECT ROWID FORMAT ON GLOBAL TEMPORARY TABLE(GTT).

product:
DB2 FOR LUW / DB2FORLUW / 970 - DB2
Problem description:
Pseudo column ROWID and scalar functions RID_BIT()/RID() returns 
the row identifier with table information to protect from 
inadvertently using it with a different table. The extra table 
information is not returned on global temporary tables(GTT). 
 
Here is an example: 
 
declare global temporary table dgtt(C1 int) on commit preserve 
rows; 
insert into session.dgtt values 1, 2, 3; 
select rowid, c1 from session.dgtt; 
select rowid, c1 from cgtt1; 
 
1                                   C1 
----------------------------------- ----------- 
x'04000000000000000000000000000000'           1 
x'05000000000000000000000000000000'           2 
x'06000000000000000000000000000000'           3 
 
3 record(s) selected. 
 
update session.dgtt set c1=10 where 
ROWID=x'04000000000000000000000000000000'; 
 
SQL0100W  No row was found for FETCH, UPDATE or DELETE; or the 
result of a 
query is an empty table.  SQLSTATE=02000 
 
The rowid returned from select was incorrect because it does 
notcontain the extra table information and thus the update 
failed to find the corresponding row and returned SQL100W.
Problem Summary:
**************************************************************** 
* USERS AFFECTED:                                              * 
* All.                                                         * 
**************************************************************** 
* PROBLEM DESCRIPTION:                                         * 
* Pseudo column ROWID and scalar functions RID_BIT()/RID()     * 
* returns the row identifier with table information to protect * 
* from inadvertently using it with a different table. The      * 
* extra table information is not returned on global temporary  * 
* tables(GTT).                                                 * 
*                                                              * 
* Here is an example:                                          * 
*                                                              * 
* declare global temporary table dgtt(C1 int) on commit        * 
* preserve  rows;                                              * 
* insert into session.dgtt values 1, 2, 3;                     * 
* select rowid, c1 from session.dgtt;                          * 
* select rowid, c1 from cgtt1;                                 * 
*                                                              * 
* 1                                   C1                       * 
* ----------------------------------- -----------              * 
* x'04000000000000000000000000000000'           1              * 
* x'05000000000000000000000000000000'           2              * 
* x'06000000000000000000000000000000'           3              * 
*                                                              * 
* 3 record(s) selected.                                        * 
*                                                              * 
* update session.dgtt set c1=10 where                          * 
* ROWID=x'04000000000000000000000000000000';                   * 
*                                                              * 
* SQL0100W  No row was found for FETCH, UPDATE or DELETE; or   * 
* the result of a                                              * 
* query is an empty table.  SQLSTATE=02000                     * 
*                                                              * 
* The rowid returned from select was incorrect because it does * 
* notcontain the extra table information and thus the update   * 
* failed to find the corresponding row and returned SQL100W.   * 
**************************************************************** 
* RECOMMENDATION:                                              * 
* Upgrade to version 9.7 fixpack 1.                            * 
****************************************************************
Local Fix:
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
This problem is first fixed in version 9.7 fixpack 1.
Workaround
not known / see Local fix
BUG-Tracking
forerunner  : APAR is sysrouted TO one or more of the following: IC63673 
follow-up : 
Timestamps
Date  - problem reported    :
Date  - problem closed      :
Date  - last modified       :
11.09.2009
04.01.2010
04.01.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