Re: how to get all ROWIDs from a table (without selecting it)?
- From: Martin Berger <martin.a.berger@xxxxxxxxx>
- To: ORACLE-L <oracle-l@xxxxxxxxxxxxx>
- Date: Mon, 29 Dec 2008 18:44:20 +0100
I'm sure I can now answer my question myselve:
Oracle does not store any information about ROWs anywhere in the Data
Dictionary.
I summarized my findings here:
http://berxblog.blogspot.com/2008/12/no-row-information-in-data-dictionary.html
I have to thank all the answers here on the list and in private mails.
All the pieces where available there, I just had to put them together.
regards,
Martin
Does anyone knows a way to get all ROWIDs from an table without
selecting it?
My investigations led me to DBMS_ROWID.ROWID_CREATE and DBA_EXTENTS
(Note:238272.1 helped me a lot) but now I'm a little stucked.
I does not know how to get all used row_numbers for all blocks
(which I calculate from dba_extents) to generate all ROWIDs in
DBMS_ROWID.ROWID_CREATE.
You can certainly generate possible ROWID values for a table, but
how will you know
if there is actually a row in the block for the ROWID unless you do
a select on the table?
Apart from dumping the block and examining the row directory in the
header that is.
If you want to do that, I think it's been documented a few times,
and google should
find it. I can't recall the details of doing so.
Jared Still
Certifiable Oracle DBA and Part Time Perl Evangelist
Other related posts: