The portion of the rowid (the first 6 characters) that's causing the mismatch is the data_object_id portion of the rowid. The data_object_id is what's found within obj$.dataobj# or dba_objects.data_object_id which identifies the physical data segment currently holding data for the object_id. The obj$.dataobj# or dba_objects.data_object_id portion of a table will change whenever a truncate or alter table move tablespace occurs.

Looking at your condition :

Rowid returned by V$session : AAAIfQAABAAANHSAAA transalates to data_object_id: 34768

SQL> select dbms_rowid.ROWID_OBJECT('AAAIfQAABAAANHSAAA') from dual;

DBMS_ROWID.ROWID_OBJECT('AAAIFQAABAAANHSAAA')
---------------------------------------------
34768

While the current rows within your table has a different data_object_id: 34776

SQL> select dbms_rowid.rowid_object('AAAIfYAABAAANHSAAA') from dual;

DBMS_ROWID.ROWID_OBJECT('AAAIFYAABAAANHSAAA')
---------------------------------------------
34776

Which tells me that the table might have been truncated (..or some type of reorg) multiple times between the time when the wait occured Vs. when you actually queried it.

Good luck......


http://www.dbaxchange.com