DB2 - Problembeschreibung
Problem IC63140 | Status: Geschlossen |
PSEUDO COLUMN ROWID AND SCALAR FUNCTIONS RID_BIT/RID DOES NOT RETURN CORRECT ROWID FORMAT ON GLOBAL TEMPORARY TABLE(GTT). | |
Produkt: | |
DB2 FOR LUW / DB2FORLUW / 970 - DB2 | |
Problembeschreibung: | |
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-Zusammenfassung: | |
**************************************************************** * 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: | |
verfügbare FixPacks: | |
DB2 Version 9.7 Fix Pack 1 for Linux, UNIX, and Windows | |
Lösung | |
This problem is first fixed in version 9.7 fixpack 1. | |
Workaround | |
keiner bekannt / siehe Local-Fix | |
Bug-Verfolgung | |
Vorgänger : APAR is sysrouted TO one or more of the following: IC63673 Nachfolger : | |
Weitere Daten | |
Datum - Problem gemeldet : Datum - Problem geschlossen : Datum - der letzten Änderung: | 11.09.2009 04.01.2010 04.01.2010 |
Problem behoben ab folgender Versionen (IBM BugInfos) | |
9.7.FP1 | |
Problem behoben lt. FixList in der Version | |
9.7.0.1 |