Innanzitutto, hai eseguito il commit del cambiamento? In caso contrario, puoi semplicemente emettere un rollback
per annullare le modifiche.
Supponendo che tu abbia eseguito il commit delle modifiche, altri utenti stanno modificando la tabella contemporaneamente? Hai bisogno di preservare le modifiche apportate da altri e ripristinare solo le modifiche apportate nella transazione? Oppure puoi ripristinare l'intera tabella a un punto nel tempo prima che venissero apportate le modifiche?
Se riesci a ripristinare l'intera tabella in un determinato momento
FLASHBACK TABLE <<table name>>
TO TIMESTAMP( systimestamp - interval '10' minute )
restituirà una tabella allo stato in cui era 10 minuti fa supponendo che UNDO
necessario per farlo rimane disponibile (quindi hai solo un tempo limitato dopo aver commesso un errore per poter eseguire il flashback di quell'errore). Per emettere una FLASHBACK TABLE
, devi anche assicurarti che
- La tabella ha abilitato lo spostamento delle righe
ALTER TABLE <<table name>> ENABLE ROW MOVEMENT
- Devi avere
FLASHBACK
privilegi sulla tabella o suFLASHBACK ANY TABLE
privilegio di sistema.