Re: Decoding rowid in a datablock.

From: Jason Heinrich <jheinrichdba_at_gmail.com>
Date: Fri, 10 Apr 2009 10:26:42 -0500
Message-ID: <b32e774d0904100826h2e97119tb574737440a7cb5f_at_mail.gmail.com>



Burleson has a fairly decent and succinct description of the rowid formats: http://www.remote-dba.net/10g_46.htm

Keep in mind that the rowid format is a little different for bigfile tablespaces in 10g and higher. You can use dbms_rowid to retrieve the various components that make up the rowid.

--
Jason Heinrich


On Fri, Apr 10, 2009 at 3:43 AM, Mathias Magnusson <
mathias.magnusson_at_gmail.com> wrote:


> I'm trying to document how rowid is used by Oracle and intend to use it for
> a presentation on rowid and how it is used by Oracle. Anyway, I found one
> thing I feel I should document better, but I cannot find anything about.
>
> Looking at the rowid in a block dump it has a format like 01 00 03 00 00
> 00. I believe I've found evidence that this makes it 010 for file, 00300 for
> block and 0000 for row. Block becomes 768 which is exactly what I knew it
> would be, it is also the only row so 0000 for row is correct. The issue is
> the file number. I know it is 4, but 010 is 16 converted to decimal. I think
> I have found indications that it needs to be divided by 4. That of course
> gets me the correct value.
>
> The question is, is this correct?
>
> Is this documented somewhere? What are the three numbers skipped in the
> file id in the rowid used for (it would seem that the file id part of a
> rowid in a block would never contain the value 1, 2, or 3)?
>
> Mathias
>
-- http://www.freelists.org/webpage/oracle-l
Received on Fri Apr 10 2009 - 10:26:42 CDT

Original text of this message