object_id vs data_object_id in user_objects

From: Jack <sqljack_at_hotmail.com>
Date: 2 Mar 2005 15:50:45 -0800
Message-ID: <1109807445.283923.45670_at_f14g2000cwb.googlegroups.com>



I would like to ask for clarification on the meaning of these two columns. According to the 9i Ref, object_id is the dictionary object number of the object and data_object_id is the dictionary object number of the segment that contains the object.

First question, what's the difference? Sorry to sound philosophic here, but how could an object exist without a segment? Obviously it does, but I could sure use some description of how to interpret the difference.

Second question,

Scenario:

Insert and commit two rows in a table.

Query user_objects for the table, object_id and data_object_id have the identical value: 31264.

Delete both rows and commit, the columns still have identical values.

Reinsert the rows, commit and truncate the table, object_id is still 31264, data_object_id is now 31265.

Maybe the answer to my first question will clear this up, but at this point I'm baffled about how the "style" of removing rows from a table can cause the table's segment id to change? Isn't it the same segment?

Thanks for any illumination anyone can throw.

Jack Received on Thu Mar 03 2005 - 00:50:45 CET

Original text of this message