IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PL/SQL Oracle Discussion :

Annuler toutes les modifications


Sujet :

PL/SQL Oracle

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Février 2011
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suède

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Février 2011
    Messages : 67
    Points : 39
    Points
    39
    Par défaut Annuler toutes les modifications
    Bonjour,

    J'ai crée une procédure qui permet de faire des 'alter' sur des tables , est ce qu'il y a moyen d'annuler tout ce qui a été fait et revenir à l'état précédent avec une procédure ?

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    500
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 500
    Points : 639
    Points
    639
    Par défaut
    Non, pas d'annulation possible sur les ordres de types DDL (Data Description Language), c'est-à-dire les ordres qui permettent de toucher à la structure des tables (CREATE, ALTER, DROP + TRUNCATE).

    Cela n'est possible qu'avec les ordres de types DML (Data Manipulation Language), c'est-à-dire les ordres qui permettent d'accéder aux données des tables (SELECT, INSERT, UPDATE, DELETE).
    Des chercheurs qui cherchent, on en trouve, mais des chercheurs qui trouvent, on en cherche !

  3. #3
    Membre averti
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2012
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mai 2012
    Messages : 127
    Points : 339
    Points
    339
    Par défaut
    Citation Envoyé par rosyfulla Voir le message
    Bonjour,

    J'ai crée une procédure qui permet de faire des 'alter' sur des tables , est ce qu'il y a moyen d'annuler tout ce qui a été fait et revenir à l'état précédent avec une procédure ?
    Bonjour,

    L'instruction FLASHBACK TABLE permet de restaurer une table à un instant déterminé, sous réserve que les données undo nécessaires n'aient pas expiré (vérifiez que le paramètre UNDO_RETENTION vous laisse suffisamment de temps pour agir), que la table ait l'option ENABLE ROW MOVEMENT, et bien sûr que l'utilisateur dispose des privilèges nécessaires.

    Cependant, un moyen plus sûr serait de tout simplement de créer une copie de la table au début de la procédure qui modifie sa structure...

  4. #4
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 947
    Points : 5 846
    Points
    5 846
    Par défaut
    Sauf que la 2eme phrase de la doc est :
    Also, Oracle Database cannot restore a table to an earlier state across any DDL operations that change the structure of the table.

  5. #5
    Membre averti
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2012
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mai 2012
    Messages : 127
    Points : 339
    Points
    339
    Par défaut
    Effectivement... J'avais fait le test pour annuler un ajout de colonne, et l'ordre s'était exécuté sans erreur (essayer d'annuler une suppression est au contraire immédiatement sanctionné d'un ORA-01466), mais la colonne existe encore. En revanche, ses valeurs avaient été remises à NULL, ce qui m'a induit en erreur. Enfin, c'est bien fait pour ma gueule, j'avais qu'à mieux regarder. Ou mieux lire la doc. J'en suis tout humilié et il va falloir que je boive pour oublier.

Discussions similaires

  1. Réponses: 1
    Dernier message: 07/06/2011, 15h06
  2. [EF]Anuller toutes les modifications
    Par anthyme dans le forum Linq
    Réponses: 8
    Dernier message: 23/09/2009, 12h52
  3. Réponses: 6
    Dernier message: 13/03/2009, 15h58
  4. Réponses: 4
    Dernier message: 30/08/2007, 15h09
  5. Annuler les modifications dans un sous-formulaire
    Par soso78 dans le forum Access
    Réponses: 2
    Dernier message: 25/09/2006, 16h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo