This error is raised when an operation refers to a ROWID in a table for which there is no such row.
The reference to a ROWID may be implicit from a WHERE CURRENT OF clause or directly from a WHERE ROWID=... clause.
ORA 1410 indicates the ROWID is for a BLOCK that is not part of this
table. If you update a rowid where the BLOCK is valid but the slot
within the block is invalid you just get ZERO rows processed/returned.
This can be a source of confusion as it is inconsistent.
If you have a cursor that selects from more than one table and
has 'for update' at the end - and then you are trying to do delete/
update WHERE CURRENT OF <cursor_name>,
then change the 'for update' to 'for update OF <column_on_table_that doing_dml_on>' -
see Bug 502671 (Closed - not a bug.)
Partager