Quick experiment: As mentioned in a previous post, the an Oracle Physical ROWID is 18 bytes laid out in the following manner:

  • Letters 1-6 = the OBJECT_ID
  • Letters 7-9 = the relative FILE_ID
  • Letters 10-15 = the BLOCK within the file
  • Letters 16-18 = the ROW within the block

But!  There are TWO different object ID’s associated with a table…one for the table itself, another for the table segment ( select object_id, data_object_id from dba_objects ).

So which one does a ROWID point to?

Continue Reading