Overblog Suivre ce blog
Administration Créer mon blog
8 juillet 2012 7 08 /07 /juillet /2012 18:09

 

Commit - Rollback To - Savepoint.

C'est quoi une transaction Oracle.
Comment utiliser des points de contrôle Savepoint.

Transaction-commit-rollback to-savepoint

 

Une transaction Oracle est un ensemble cohérent de modifications (Commandes DML ou LMD) faites sur des données permettant de garantir les propriétés ACID.

C'est quoi les propriétés ACID.

 Atomicité = Transaction s'exécute entièrement ou pas du tout. Consistance = Cohérence sémantique, une transaction assure l’intégrité des données. Isolation = Pas de propagation de résultats non validés et pas d'interférence entre elles. Durabilité = Persistance des effets validés, effets d'une transaction validée ne sont jamais perdus. 

 

Une transaction Oracle est soit entièrement annulée avec un ROLLBACK, soit entièrement validée avec un COMMIT.
Une transaction commence soit à la connexion ou en début de session, soit à la fin d'une transaction précédente annulée ou validée.
Les commandes de définitions de données (DDL ou LDD) marque une fin implicite d'une transaction (AUTO-COMMIT) donc une commande sql CREATE, DROP ou ALTER valide les ordres précédents par un COMMIT implicite.
Tant qu'une transaction n'a pas eu un COMMIT, seul l'utilisateur de la session en cours voit ses mises à jour.

Les savepoint sont des points de contrôle utilisés dans les transactions pour annuler partiellement l’une d’elles.
Il est possible de définir des Savepoint qui sont des points de contrôle utilisés dans une transaction ainsi on a la possibilité de faire des annulations partielles de transaction.

Controler les Transactions avec Commit, Rollback, Savepoint.

  • Commit.
  • L'instruction Commit met fin à une transaction en validant tous les changements de données et place la base dans un nouvel état cohérent.
  • Savepoint name.
  • L'instruction Savepoint place un marqueur défini par un identifiant permettant une annulation partielle de la transaction avec un Rollback To.
  • Rollback.
  • L'instruction Rollback met fin à une transaction en annulant tous les changements de données dans la transaction.
  • Rollback To Savepoint name.
  • L'instruction Rollback To Savepoint annule les changements de données d'une portion de transaction c'est à dire jusqu'au Savepoint name référencé par le Rollback To.
 
 SQL> INSERT INTO transactions VALUES (1,'Pas de savepoint'); 1 ligne créée. SQL> INSERT INTO transactions VALUES (2,'Savepoint A'); 1 ligne créée. SQL> SAVEPOINT A; Savepoint créé. SQL> INSERT INTO transactions VALUES (3,'Savepoint B'); 1 ligne créée. SQL> SAVEPOINT B; Savepoint créé. SQL> INSERT INTO transactions VALUES (4,'Pas de savepoint'); 1 ligne créée. SQL> ROLLBACK TO SAVEPOINT B; Annulation (rollback) effectuée. SQL> SELECT * FROM transactions; ID DESCRIPTION ---------- -------------------- 1 Pas de savepoint 2 Savepoint A 3 Savepoint B SQL> ROLLBACK TO SAVEPOINT A; Annulation (rollback) effectuée. SQL> SELECT * FROM transactions; ID DESCRIPTION ---------- -------------------- 1 Pas de savepoint 2 Savepoint A SQL> COMMIT; Validation effectuée. SQL> SELECT * FROM transactions; ID DESCRIPTION ---------- -------------------- 1 Pas de savepoint 2 Savepoint A SQL> 

 

Haut de Page www.dba-ora.fr

 

Liens en rapport avec l'article qui sont susceptibles de vous intéresser
• Voir les TRANSACTIONS actives.
Repost 0