lundi 28 juin 2010

Récupérer une table supprimée.

Il est possible qu'on peut récupérer une table effacée par la commande Drop (DROP TABLE NOMTABLE) à moins qu'on active la corbeille d'Oracle.

Pour activer, on va vérifier un paramètre dans la corbeille:
  • Connectez-vous avec sys as sysdba avec PL/SQL Developer, TOAD ou bien tout simplement l'interface texte de SQL PLUS.
  • Tapez cette commande: SHOW PARAMETER RECYCLEBIN, ce qui nous donne le résultat suivant:
NAME TYPE VALUE
--------- -------- -------
recyclebin string on

On voit bien que la corbeille est ON (ça veut dire que les objets effacés sont stockés dans cette corbeille pour les récupérer). Si le paramètre est OFF, on va faire un ALTER SYSTEM indiqué comme suit:
ALTER SYSTEM SET RECYCLEBIN = ON SCOPE=SPFILE;

Ensuite, on va faire un drop de la table employe (DROP TABLE EMPLOYE). À ce moment là, l'objet employe n'existe pas et pour récupérer cette table, on va utiliser un FLASHBACK:
FLASHBACK TABLE EMPLOYE TO BEFORE DROP;

Si on fait maintenant DESC EMPLOYE, le système va afficher la structure de la table effacée.

Aucun commentaire:

Enregistrer un commentaire