Re: how to get all ROWIDs from a table (without selecting it)?

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: