Repositionnement des transactions

Le repositionnement d'une transaction annule ses modifications. Vous pouvez annuler (rollback) l'intégralité de la transaction en cours, ou uniquement vers un point d'enregistrement spécifique.

Pour repositionner la transaction courante uniquement à un point d'enregistrement spécifié, vous devez utiliser l'instruction ROLLBACK avec la clause TO SAVEPOINT.

Pour repositionner l'ensemble de la transaction courante, utilisez l'énoncé ROLLBACK sans la clause TO SAVEPOINT ou (dans l'environnement SQL Developer) l'icône Repositionner les modifications.

Le repositionnement de l'ensemble de la transaction en cours effectue les opérations suivantes :

Le repositionnement de la transaction en cours uniquement vers le point d'enregistrement indiqué effectue les opérations suivantes :

Pour voir l'effet d'un repositionnement dans SQL Developer, vous devrez peut-être cliquer sur l'icône Actualiser.

À la suite de l'exemple 3-7, la table REGIONS a une région appelée 'Moyen-Orient et Afrique' et une région appelée 'Afrique'. Exemple 3-8 corrige ce problème (une transaction très simple) et vérifie la modification, mais repositionne la transaction et vérifie le repositionnement.

Exemple 3-8 Repositionnement d'une transaction entière

Avant la transaction :

SELECT * FROM REGIONS
ORDER BY REGION_ID;

Résultat :

REGION_ID REGION_NAME
---------- -------------------------
         1 Europe
         2 Americas
         3 Asia
         4 Middle East and Africa
         5 Africa

5 rows selected.

Transaction (table de modification) :

UPDATE REGIONS
SET REGION_NAME = 'Middle East'
WHERE REGION_NAME = 'Middle East and Africa';

Résultat :

1 row updated.

Vérifier la modification :

SELECT * FROM REGIONS
ORDER BY REGION_ID;

Résultat :

REGION_ID REGION_NAME
---------- -------------------------
         1 Europe
         2 Americas
         3 Asia
         4 Middle East
         5 Africa

5 rows selected.

Repositionner la transaction :

ROLLBACK;

Résultat :

Rollback complete.

Vérifier le repositionnement :

SELECT * FROM REGIONS
ORDER BY REGION_ID;

Résultat :

REGION_ID REGION_NAME
---------- -------------------------
         1 Europe
         2 Americas
         3 Asia
         4 Middle East and Africa
         5 Africa

5 rows selected.

Voir aussi : Informations de référence sur le langage SQL pour Oracle Database pour plus d'informations sur l'énoncé ROLLBACK