home clear 64x64
en blue 200x116 de orange 200x116 info letter User
suche 36x36
Neueste VersionenFixList
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
Haben Sie Probleme? - Kontaktieren Sie uns.
Kostenlos registrieren anmeldung-x26
Kontaktformular kontakt-x26

DB2 - Problembeschreibung

Problem IC63673 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 / 950 - 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 not 
contain 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 * 
* not                                                          * 
* contain the extra table information and thus the update      * 
* failed                                                       * 
* to find the corresponding row and returned SQL100W.          * 
**************************************************************** 
* RECOMMENDATION:                                              * 
* Update to version 9.5 fix pack 6 or later.                   * 
****************************************************************
Local-Fix:
verfügbare FixPacks:
DB2 Version 9.5 Fix Pack 6a for Linux, UNIX, and Windows
DB2 Version 9.5 Fix Pack 7 for Linux, UNIX, and Windows
DB2 Version 9.5 Fix Pack 8 for Linux, UNIX, and Windows
DB2 Version 9.5 Fix Pack 9 for Linux, UNIX, and Windows
DB2 Version 9.5 Fix Pack 10 for Linux, UNIX, and Windows

Lösung
This problem is first fixed in version 9.5 fix pack 6.
Workaround
keiner bekannt / siehe Local-Fix
Weitere Daten
Datum - Problem gemeldet    :
Datum - Problem geschlossen :
Datum - der letzten Änderung:
09.10.2009
25.05.2010
26.05.2010
Problem behoben ab folgender Versionen (IBM BugInfos)
9.5.FP6
Problem behoben lt. FixList in der Version