在refenerce中,object_id与data_object_id的定义如下:
object_id          Dictionary object number of the object
data_object_id     Dictionary object number of the segment that contains
                   the object
object_id是存储在数据字典中对象的编号;data_object_id是存储这个对象的物理段编号.
 
SQL> select object_id,data_object_id from user_objects where object_name='TEST7';
 OBJECT_ID DATA_OBJECT_ID
---------- --------------
      6617           7250
 
SQL> alter table test7 move;
 
Table altered.
SQL> select object_id,data_object_id from user_objects where object_name='TEST7';
 OBJECT_ID DATA_OBJECT_ID
---------- --------------
      6617           7268
 
我们看到:对表进行move操作, object_id不变,data_object_id发生变化.
在9i中,rowid由data_object_id# + rfile# + block# + row#组成,因此,当表进行move操作后,
data_object_id会发生变化,相应的rowid会发生变化,因此要rebuild索引.