On Thu, Jan 3, 2019 at 12:12 PM Norman Dunbar <oracle@xxxxxxxxxxxxxxx> wrote:
Happy new year!
Happy New Year everyone.
The table might have been "defragmented" at some point usingGreat background information!
ALTER TABLE ... MOVE;
Problem:
Then OBJECT_ID, 1008338, given above is the correct one for the table in
the DELETE statement that is deadlocking. However,
DBMS_ROWID.ROWID_INFO, or, DBMS_ROWID.ROWID_OBJECT, give a completely
different object number given the ROWIDs above - AAEGjbAQAAApJ2CAAY and
AAEGjbAQAAApJ3rAAD, or indeed, for every rowid in the table.
Querying the database, I get the following:
-- Retrieve the table's OBJECT_ID:
OBJECT_ID
---------
1008338
-- Retrieve the OBJECT_ID from the ROWIDs:
select dbms_rowid.rowid_object(chartorowid('AAEGjbAQAAApJ3rAAD')) as
OBJECT_ID from dual;
OBJECT_ID
---------
1075419
select rowid as riProbably somewhere there's a good explanation why this works. I assume
from TABLE_NAME_IN_QUESTION
where rowid in ('AAEGjbAQAAApJ2CAAY', 'AAEGjbAQAAApJ3rAAD');
RI
------------------
AAEGjbAACAAJJ2CAAY
AAEGjbAACAAJJ3rAAD
^^ ^