Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment restaurer les données dans une table Oracle ?

Tout d'abord, avez-vous validé le changement ? Sinon, vous pouvez simplement émettre un rollback pour annuler vos modifications.

En supposant que vous ayez validé vos modifications, d'autres utilisateurs modifient-ils la table en même temps ? Avez-vous besoin de conserver les modifications apportées par d'autres et d'annuler uniquement les modifications que vous avez apportées à votre transaction ? Ou pouvez-vous restaurer l'intégralité du tableau à un moment antérieur à vos modifications ?

Si vous pouvez restaurer la table entière à un moment donné

FLASHBACK TABLE <<table name>>
  TO TIMESTAMP( systimestamp - interval '10' minute )

renverra une table à l'état où elle était il y a 10 minutes en supposant que le UNDO nécessaire pour le faire reste disponible (vous n'avez donc qu'un temps limité après avoir fait une erreur pour pouvoir revenir en arrière sur cette erreur). Afin d'émettre une FLASHBACK TABLE , vous devez également vous assurer que

  • La table a activé le mouvement de ligne ALTER TABLE <<table name>> ENABLE ROW MOVEMENT
  • Vous devez avoir FLASHBACK privilèges sur la table ou le FLASHBACK ANY TABLE privilège système.