Fwd: Decoding rowid in a datablock.

  • From: Mathias Magnusson <mathias.magnusson@xxxxxxxxx>
  • To: oracle-l@xxxxxxxxxxxxx
  • Date: Fri, 10 Apr 2009 10:43:19 +0200

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:

  • » Fwd: Decoding rowid in a datablock. - Mathias Magnusson