Because rowids identify the location of a row, they are the fastest way to retrieve a row from a database. Hence,
indexes store rowids for the indexed values.
Selecting rowids from a table
rowid
is also a
pseudo column which evaluates to a selected record's rowid:
create table tq84_rowid (
id number,
col_1 varchar2(20)
);
insert into tq84_rowid values(1, 'foo');
insert into tq84_rowid values(2, 'bar');
insert into tq84_rowid values(3, 'baz');
select
rowid
r.*
from
tq84_rowid r;
drop table tq84_rowid;
MOS Note 399410.1
select
to_number(utl_encode.base64_decode(utl_raw.cast_to_raw(s.data_object_id )), 'XXXXXXXXXXXX') obj_,
to_number(utl_encode.base64_decode(utl_raw.cast_to_raw(s.rel_fno )), 'XXXXXX') rel_fno_,
to_number(utl_encode.base64_decode(utl_raw.cast_to_raw(s.block_number )), 'XXXXXXXXXXXX') block_no_,
to_number(utl_encode.base64_decode(utl_raw.cast_to_raw(s.row_number )), 'XXXXXXXXXXXX') row_no_
from (
select
'AA' || substr('AAANdqAABAAAPFyAAA', 1, 6) data_object_id,
'A' || substr('AAANdqAABAAAPFyAAA', 7, 3) rel_fno,
'AA' || substr('AAANdqAABAAAPFyAAA', 10, 6) block_number,
'A' || substr('AAANdqAABAAAPFyAAA', 16, 3) row_number -- slot
from
dual
) s;