För det första, begick du förändringen? Om inte kan du helt enkelt göra en rollback
för att återställa dina ändringar.
Om du antar att du gjorde dina ändringar, ändrar andra användare tabellen samtidigt? Behöver du bevara de ändringar som andra har gjort och bara återställa de ändringar du gjort i din transaktion? Eller kan du återställa hela tabellen till en tidpunkt innan dina ändringar gjordes?
Om du kan återställa hela tabellen till en tidpunkt
FLASHBACK TABLE <<table name>>
TO TIMESTAMP( systimestamp - interval '10' minute )
kommer att returnera en tabell till det tillstånd den var i för 10 minuter sedan förutsatt att UNDO
nödvändigt för att göra det förblir tillgänglig (så att du bara har en begränsad tid efter att du har gjort ett misstag för att kunna flashbacka det misstaget). För att utfärda en FLASHBACK TABLE
, du måste också se till att
- Tabellen har aktiverat radförflyttning
ALTER TABLE <<table name>> ENABLE ROW MOVEMENT
- Du måste ha
FLASHBACK
privilegier på bordet ellerFLASHBACK ANY TABLE
systembehörighet.