Re: Decoding rowid in a datablock.

  • From: Jason Heinrich <jheinrichdba@xxxxxxxxx>
  • To: mathias.magnusson@xxxxxxxxx
  • Date: Fri, 10 Apr 2009 10:26:42 -0500

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@xxxxxxxxx> 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
>

Other related posts: