RE: find file_id or block_id from data block address

  • To: <premjhere@xxxxxxxxx>
  • Date: Tue, 27 Dec 2005 09:34:00 +0100

Prem

A small correction about my last post...

>IMO in 7.3 the file number part of the DBA is 8 bits (from 8.0 it 
>is 10 bits). Therefore the correct file number is 32 (not 128).

7.3 supported 1022 files. Therefore 10 bits are reserved for the file number in 
the RDBA. The difference is the position... In fact the high order bits of the 
file number are stored after the low order bits. The exact number of high/low 
order bits is platform specific, in my previous guess I took 8 for the low 
order part and, therefore, 2 for the high order part, i.e. something like that 
"LL LL LL LL HH".

E.g. in your case:

Decimal: 537037017
Binary: 0010 0000 0000 0010 1000 1000 1101 1001
File Number: 0010 0000 00 --move high order bits--> 00 0010 0000 --> 32
Block Number: 00 0010 1000 1000 1101 1001 --> 166105

This means that with less than 256 files, the high order byte stores the file 
number.


HTH
Chris
--
//www.freelists.org/webpage/oracle-l


Other related posts: