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

 Oracle Discussion :

Quand réaliser le commit ?


Sujet :

Oracle

  1. #1
    Membre actif
    Inscrit en
    Janvier 2005
    Messages
    629
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 629
    Points : 203
    Points
    203
    Par défaut Quand réaliser le commit ?
    Bonjour à tous,

    Je dispose d'une base Oracle. Je n'ai pas accès aux transactions (ou je ne sais trop quoi). J'ai juste accès aux tables et à l'outil SQL+ me permettant de faire mes requetes SQL.

    Question: Quand je fais un delete (ou update ou insert), à quel moment je dois faire commit ?
    a. j'écris le delete et le commit puis j'execute le tout ?
    b. j'ecris le delete, j'execute, j'écris commit, j'execute ?

    J'ai testé le cas a, ça marche.

    J'ai testé un pseudo cas b (j'ecris le delete, j'execute, j'ecris le delete et j'écris commit, j'execute):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    /* execution du delete sans commit */
    xx lignes supprimées
    /* puis réexecution du delete avec commit */
    0 lignes supprimées
    /* => je ne sais pas si ça a été pris en compte */
    Je n'ai pas testé le cas b.

    Merci de votre aide.
    Bonne journée

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Le commit validera toutes les transactions en cours dans votre session.
    Donc a et b seront similaires.

    Dans le cas b les données supprimées seront juste visibles plus longtemps par les autres sessions.

    Dans votre pseudo cas b, vous supprimez les données, puis vous essayez de les resupprimer : mais comme elles ne sont déjà plus là, rien n'est effacé.
    Le commit a validé vos deux suppressions, mais la seconde ne servait à rien ici.

  3. #3
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 460
    Points : 8 074
    Points
    8 074
    Par défaut
    Citation Envoyé par Waldar Voir le message
    Le commit validera toutes les transactions en cours dans votre session.
    Désolé de venir faire l'inspecteur des travaux finis, mais il faut rectifier cette erreur d'inattention : le COMMIT valide toutes les modifications, et non pas les transactions (vu qu'il ne peut y avoir qu'une seule transaction en cours dans une session).
    Consultant / formateur Oracle indépendant
    Certifié OCP 12c, 11g, 10g ; sécurité 11g

    Ma dernière formation Oracle 19c publiée sur Linkedin : https://fr.linkedin.com/learning/oracle-19c-l-administration

  4. #4
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Pas de soucis monsieur l'inspecteur !

  5. #5
    Membre actif
    Inscrit en
    Janvier 2005
    Messages
    629
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 629
    Points : 203
    Points
    203
    Par défaut
    Merci bcp !

    Explications très claires

    Bonne journée !

  6. #6
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Citation Envoyé par Pomalaix Voir le message
    Désolé de venir faire l'inspecteur des travaux finis, mais il faut rectifier cette erreur d'inattention : le COMMIT valide toutes les modifications, et non pas les transactions (vu qu'il ne peut y avoir qu'une seule transaction en cours dans une session).
    Tient en y réfléchissant et en dérivant sur le PL/SQL, le PRAGMA AUTONOMOUS_TRANSACTION ouvre bien une seconde transaction dans la même session ou bien fonctionne-t-il différemment ?

  7. #7
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 460
    Points : 8 074
    Points
    8 074
    Par défaut
    Citation Envoyé par Waldar Voir le message
    Tient en y réfléchissant et en dérivant sur le PL/SQL, le PRAGMA AUTONOMOUS_TRANSACTION ouvre bien une seconde transaction dans la même session ou bien fonctionne-t-il différemment ?
    Oui, ça met en suspens la transaction principale, et ça démarre la transaction autonome dans la même session.
    Consultant / formateur Oracle indépendant
    Certifié OCP 12c, 11g, 10g ; sécurité 11g

    Ma dernière formation Oracle 19c publiée sur Linkedin : https://fr.linkedin.com/learning/oracle-19c-l-administration

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

Discussions similaires

  1. [Hook] Réaliser un transfert post-commit
    Par AnCaRioN dans le forum Subversion
    Réponses: 2
    Dernier message: 03/02/2009, 09h54
  2. Pas d'événement OnClose quand on arrête W2K
    Par Altau dans le forum C++Builder
    Réponses: 9
    Dernier message: 26/01/2009, 18h36
  3. [imprecis]Réaliser a^n avec seulement l'opérateur d'addition
    Par Amon dans le forum Algorithmes et structures de données
    Réponses: 18
    Dernier message: 08/11/2002, 22h22
  4. Réponses: 2
    Dernier message: 27/05/2002, 19h46

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