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

Administration Oracle Discussion :

Nombre de lignes après annulation [11gR2]


Sujet :

Administration Oracle

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 083
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 083
    Points : 271
    Points
    271
    Par défaut Nombre de lignes après annulation
    Bonjour,
    je supprime 26 ligne, j'annule l'opération et je retrouve 23 lignes. Avez-vous une idée ?
    D'avance merci.
    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
     
    SQL> DELETE FROM DETAILS;
     
    26 ligne(s) supprimée(s).
     
    SQL> SELECT COUNT(*) FROM DETAILS;
     
      COUNT(*)
    ----------
             0
     
    SQL> ROLLBACK;
     
    Annulation (rollback) effectuÚe.
     
    SQL> SELECT COUNT(*) FROM DETAILS;
     
      COUNT(*)
    ----------
            23

  2. #2
    Membre confirmé
    Homme Profil pro
    xxxxxxxxx
    Inscrit en
    Avril 2015
    Messages
    392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : xxxxxxxxx

    Informations forums :
    Inscription : Avril 2015
    Messages : 392
    Points : 552
    Points
    552
    Par défaut Pb_delete_rollback_nb_lignes
    Bonjour,
    Ce n'est pas normal, en verifiant si ce n'est pas un bug oracle ou autre chose, tu peux faire un petit test :
    -créer une table details_bis de même structure et contenant les lignes de details
    -ensuite tu calcul les stats de cette tables
    -tu affiche le nombre de lignes de la nouvelle table
    -tu effectue ton delete
    -ensuite tu verifie nombre de lignes
    -tu annule l'operation, et tu vérifies !

  3. #3
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Citation Envoyé par big1 Voir le message
    ...
    je supprime 26 ligne, j'annule l'opération et je retrouve 23 lignes. Avez-vous une idée ?
    Certainement il devrait y avoir 3 lignes insérées avant la suppression; l'instruction rollback concerne une transaction et non pas une instruction DML.

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 083
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 083
    Points : 271
    Points
    271
    Par défaut
    Bonjour,
    merci de bien vouloir m'éclairer sur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     l'instruction rollback concerne une transaction et non pas une instruction DML.
    Une insertion n'est pas une transaction ?
    Cordialement.

  5. #5
    Membre confirmé
    Homme Profil pro
    xxxxxxxxx
    Inscrit en
    Avril 2015
    Messages
    392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : xxxxxxxxx

    Informations forums :
    Inscription : Avril 2015
    Messages : 392
    Points : 552
    Points
    552
    Par défaut transact_dml_rollback
    Bonjour ,

    Une instruction ROLLBACK est une instruction qui met fin à une transaction, (idem pour COMMIT), par contre
    une insertion est une transaction LMD avec (update et delete) .
    Voilà,
    une transaction T :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    insert into table  nom_table values (v1,v2,v3) ; 
                                         insert  into table nom_table values (v1,v2,v3) ;
                                         update nom_table set  col1=nouv_v where col2=v2 ; 
                                         delete nom_table where  col2=autre_val ;
                                          ROLLBACK  ;  ou  bien COMMIT
    ROLLBACK <-- pour annuler la transaction .
    COMMIT <-- pour valider la transaction .

    Cordialement .

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/05/2010, 14h41
  2. Nombre de lignes obtenues après une requete sql
    Par maxlegrand dans le forum JDBC
    Réponses: 8
    Dernier message: 06/06/2007, 10h38
  3. Réponses: 2
    Dernier message: 02/03/2004, 19h38
  4. [MFC] Nombre de chiffres après la virgule
    Par karl3i dans le forum MFC
    Réponses: 3
    Dernier message: 27/01/2004, 13h04
  5. [TListView] Compter le nombre de lignes
    Par agh dans le forum Composants VCL
    Réponses: 2
    Dernier message: 30/09/2002, 20h25

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