Re: Global Temporary Table with column of type ROWID and Oracle Updates
Date: Tue, 16 Dec 2008 06:46:47 -0800 (PST)
Message-ID: <b827d08e-4d09-4410-8ab9-952c515ee269@a29g2000pra.googlegroups.com>
On Dec 16, 3:04 pm, Ed Prochak <edproc..._at_gmail.com> wrote:
> On Dec 16, 7:23 am, Robert Klemme <shortcut..._at_googlemail.com> wrote:
> > I have proposed a solution which uses a global temporary table to
> > remember an updated record via its rowid. Concerns have been risen
> > that this will cause trouble in case of an update of the Oracle
> > version (currently 10.2.0.2) to another version with a changed format
> > for ROWID type columns. My reply was that during an upgrade of DB
> > software there will be no segments of the global temporary table
> > because of the way Oracle allocates segments (see [1]): only on first
> > insert in a session a segment will be allocated and consequently only
> > then data blocks will be formatted. So there should be no issue at all
> > even if the format of ROWID changes. Is my reasoning correct? (I
> > could not find anything relevant to this in metalink.)
> I'm not clear on the question. Is the GTT holding the ROWID from
> another table?
Yes.
> I think that would be okay. If it's the other way
> around, i.e, some table holding a ROWID pointing to the GTT, then I
> would agree with the concern.
That would be a moot design anyway: I mean, where is the point in permanently storing a reference to something that is gone after the TX completes or the session dies? :-)
> Seems to me a global temporary table would be empty during any DB
> upgrade.
Certainly. The main concern of my colleague was that the presence of the rowid typed column might cause issues like ORA-06502 after DB upgrade. But since I have seen Oracle touch complete datafiles during an upgrade I would imagine that even rowid typed columns in "ordinary" tables would be adjusted.
> I agree that ROWIDs should be used carefully.
Thanks!
robert Received on Tue Dec 16 2008 - 08:46:47 CST