A propos des instructions de contrôle de transaction
Une transaction est une séquence d'une ou de plusieurs instructions SQL qu'Oracle Database traite comme une unité : soit toutes les instructions sont exécutées, soit aucune. Les transactions permettent de modéliser les processus métier qui requièrent plusieurs opérations exécutées en tant qu'une seule et même unité.
Par exemple, quand un responsable quitte l'entreprise, une ligne doit être insérée dans la table JOB_HISTORY pour notifier le départ du responsable et, pour chaque employé subordonné au responsable, la valeur de MANAGER_ID doit être mise à jour dans la table EMPLOYEES. Pour modéliser ce processus dans une application, vous devez regrouper les instructions INSERT et UPDATE dans une même transaction.
Les instructions de contrôle de transaction de base sont SAVEPOINT, COMMIT et ROLLBACK :
-
SAVEPOINT qui marque un point de secours dans une transaction (un point à l'aide duquel vous pourrez ensuite effectuer une annulation). Les points de sauvegarde sont facultatifs et il peut y en avoir plusieurs dans une même transaction.
-
L'instruction COMMIT met fin à la transaction en cours, rend permanentes les modifications que celle-ci a effectuées, efface ses point de sauvegarde et libère ses verrous.
-
ROLLBACK annule (annule) la transaction en cours, soit l'ensemble de la transaction en cours, soit les modifications apportées après le point de sauvegarde spécifié.
Dans l'environnement SQL*Plus, vous pouvez saisir une instruction de contrôle de transaction après l'invite SQL>.
Dans l'environnement SQL Developer, vous pouvez entrer une instruction de contrôle de transaction dans la feuille de calcul. De plus, SQL Developer possède des icônes Valider les changements et Annuler les changements, dont le rôle est décrit aux sections "Validation des transactions" et "Annuler des transactions".
Attention :
Si vous ne validez pas explicitement une transaction et qu'elle se termine de façon anormale, la base de données annule automatiquement la dernière transaction non validée.
Pour cette raison, mettez fin explicitement aux transactions dans les programmes d'application en les validant ou les annulant.
Voir aussi :
-
Oracle Database Concepts, pour plus d'informations sur la gestion des transactions.
-
Manuel Oracle Database SQL Language Reference, pour plus d'informations sur les instructions de contrôle de transaction