Oracle if inserting or updating then
May/June 2012 The Oracle PL/SQL language was designed to be a portable, high-performance transaction processing language that is tightly integrated with the SQL language.It is rare, indeed, to find a PL/SQL program that does not either read from or make changes to tables in a database.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.
Being able to flashback DML operations has greatly reduced the frequency of how often you hear a DBA say, ? FLASHBACK TABLE CITY_OFFICES 2 TO TIMESTAMP (SYSTIMESTAMP - INTERVAL '05' minute); FLASHBACK TABLE CITY_OFFICES *ERROR at line 1: ORA-08189: cannot flashback the table because row movement is not enabled The error message in this case is much clearer as to the nature of the failed statement.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.For Flashback Table to succeed, the system must retain enough undo information to satisfy the specified SCN or timestamp, and the integrity constraints specified on the tables cannot be violated. The third and final example of where row movement comes into play can be found in shrink operations.If you think about it, shrinking a table may entail moving data around within a table (handled internally by Oracle), so the idea of a row moving around makes sense.