I find it handy to keep the flashback syntax around in an easily (and quickly) identifiable location, and that is chiefly because I don't use timestamps that much in my applications.Time is still somewhat of the essence and the quicker you can recover the table to a good state, the better.You may have expected office_number 4's ROWID to change, but not office_number 1's, but it too changed location after the shrink.The moral of the story here supports what the documentation says (in more than one place): Before you use rowids in DML statements, they should be verified and guaranteed not to change.As far back as Oracle 8.1.5 documentation, row movement applied to updatable partition keys.A list partition where the partition key is a specific value is a good example of this. Does a row move to another table, or is row movement constrained to the row's container (i.e., a table)?This article looks at three common cases or situations where row movement needs to be enabled.
Interestingly enough, the ROWIDs for the two remaining rows are different from their original IDs before the delete statement.
The landmark book "Advanced Oracle SQL Tuning The Definitive Reference" is filled with valuable information on Oracle SQL Tuning.
This book includes scripts and tools to hypercharge Oracle 11g performance and you can buy it for 30% off directly from the publisher.
The intended rows should be locked so they cannot be deleted.
Under some circumstances, requesting data with an invalid rowid could cause a statement to fail.