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

SQL Oracle Discussion :

[10gR2] récupérer des données supprimées par DELETE + COMMIT


Sujet :

SQL Oracle

  1. #1
    Membre averti Avatar de LBO72
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    406
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 406
    Points : 342
    Points
    342
    Par défaut [10gR2] récupérer des données supprimées par DELETE + COMMIT
    Bonjour,

    Avec le FLASHBACK on peut récupère la totalité d'une table qu'on vient de DROPERr(Schéma et donnée). Y-a-t-il un moyen pour récupère les données d'une table qu'on vient deleter ? : DELETE SINISTRE.

    Merci de votre aide.
    LBO72.

  2. #2
    Membre averti Avatar de LBO72
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    406
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 406
    Points : 342
    Points
    342
    Par défaut Récupèrer données d'un table oracle
    Mauvais point pour moi

    Nous sommes en 10gr2.

    LBO72

  3. #3
    Membre averti

    Profil pro
    Coach Agile
    Inscrit en
    Décembre 2005
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Coach Agile

    Informations forums :
    Inscription : Décembre 2005
    Messages : 316
    Points : 371
    Points
    371
    Par défaut
    Tant que tu n'as pas effectuer de COMMIT, si tu as utilisé une commande delete, tu peux faire un ROLLBACK.
    Si tu as fait le COMMIT, ou si tu as exploité un TRUNCATE TABLE ... c'est foutu.

    Il ne te reste plus qu'à te tourner vers ta dernière sauvegarde.

    Chris.

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Citation Envoyé par jproto
    Si tu as fait le COMMIT, ou si tu as exploité un TRUNCATE TABLE ... c'est foutu
    Non !
    Il existe un tutoriel sur les flashbacks query sur ce site qui explique comment, à partir de la date ou du SCN, récupérer ces informations supprimées et commitées.
    Modérateur des forums Oracle et Langage SQL
    Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum

  5. #5
    Membre averti Avatar de LBO72
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    406
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 406
    Points : 342
    Points
    342
    Par défaut
    Bonjour,

    J' ai essayé à l'aide du tutoriel sur les flashbacks query sur ce site. J'arrive bien à visualiser par l'ordre SELECT les données supprimées, mais il est impossible de récupérer les données dans une autre table(par exemple).

    EXECUTE DBMS_FLASHBACK.ENABLE_AT_TIME(sysdate- (3/1440));
    ...
    ici la table est bien visible
    On ne peut lancer que l'ordre SELECT
    ...
    EXECUTE DBMS_FLASHBACK.DISABLE;

    ici la table n'est plus visible.
    Merci.
    LBO

  6. #6
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Juin 2007
    Messages : 52
    Points : 46
    Points
    46
    Par défaut
    Et pourquoi pas simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    flashback table <ma_table> to timestamp (systimestamp - interval 'X' minute);
    Ou <ma_table> est le nom de la table et X le nombre de minutes pour le flashback !

  7. #7
    Membre averti Avatar de LBO72
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    406
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 406
    Points : 342
    Points
    342
    Par défaut
    Bonjour lapinCretin,

    Je pense que ce que tu proposes fonctionne seulement si on fait drop et non pas un delete avec commit de le table.

    Merci.
    LBO72

  8. #8
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Juin 2007
    Messages : 52
    Points : 46
    Points
    46
    Par défaut
    Pour recuperer d'un drop, la commande est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    flashback table <ma_table> to before drop;
    Je suis en 10GR2 aussi, ci joint un exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    SQL*Plus: Release 10.2.0.1.0 - Production on Mon Jun 25 17:08:29 2007
     
    Copyright (c) 1982, 2005, Oracle.  All rights reserved.
     
     
    Connected to:
    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
    With the Partitioning, OLAP and Data Mining options
     
    SQL> select * from test;
     
            ID TEXTE
    ---------- ----------
             2 Deux
             3 Trois
             1 Un
     
    SQL> delete from test;
     
    3 rows deleted.
     
    SQL> commit;
     
    Commit complete.
     
    SQL> select * from test;
     
    no rows selected
     
    SQL> alter table test enable row movement;
     
    Table altered.
     
    SQL> flashback table test to timestamp (systimestamp - interval '1' minute);
     
    Flashback complete.
     
    SQL> alter table test disable row movement;
     
    Table altered.
     
    SQL> select * from test;
     
            ID TEXTE
    ---------- ----------
             2 Deux
             3 Trois
             1 Un
     
    SQL>
    As tu au moins essayé ?

  9. #9
    Membre averti Avatar de LBO72
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    406
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 406
    Points : 342
    Points
    342
    Par défaut
    Salut,
    Je suis aussi en 10gR2, j'ai essayé la solution de lapinCretin et j'ai un message d'ano :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    Connected to:
    Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - 64bit Production
    With the Partitioning, OLAP and Data Mining options
     
    ____________________________________________________________________________________________________________________________
    ___                                                                                                                      ___
    ___    Bienvenue  Utilisateur PAVSD10 sur l instance : PAVSD10 de z7057hp demarree le 24 JUIN      2007 a 19h03mn02s        ___
    ____________________________________________________________________________________________________________________________
     
    z7057hp/PAVSD10/PAVSD10)>z7057hp/PAVSD10/PAVSD10)>select * from lbotest;
     
            NN
    ----------
             1
             2
             3
     
    3 rows selected.
     
    z7057hp/PAVSD10/PAVSD10)>delete lbotest;
     
    3 rows deleted.
     
    z7057hp/PAVSD10/PAVSD10)>commit;
     
    Commit complete.
     
    z7057hp/PAVSD10/PAVSD10)>alter table lbotest enable row movement;
     
    Table altered.
     
    z7057hp/PAVSD10/PAVSD10)>flashback table lbotest to timestamp (systimestamp - interval '1' minute);
    SP2-0734: unknown command beginning "flashback ..." - rest of line ignored.
    z7057hp/PAVSD10/PAVSD10)>

Discussions similaires

  1. Récupérer des données BO par code VB
    Par GohanSSj2 dans le forum Webi
    Réponses: 3
    Dernier message: 17/06/2011, 15h14
  2. [MySQL] récupérer des données séparé par un point virgule
    Par nox77 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 20/02/2011, 17h35
  3. [MySQL] récupérer des données par mois
    Par michelkey dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 22/11/2008, 18h19
  4. est-il possible de récupérer des données supprimer?
    Par bidibou dans le forum Administration
    Réponses: 2
    Dernier message: 12/07/2007, 09h29
  5. Récupérer des données par LDAP
    Par wil4linux dans le forum ASP
    Réponses: 3
    Dernier message: 14/09/2005, 12h11

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