Esecuzione del rollback delle transazioni

Il rollback di una transazione ne annulla le modifiche. È possibile eseguire il rollback dell'intera transazione corrente oppure eseguirne il rollback solo a un savepoint specificato.

Per eseguire il ROLLBACK della transazione corrente solo a un SAVEPOINT specificato è necessario utilizzare l'istruzione ROLLBACK con la clausola TO SAVEPOINT.

Per eseguire il ROLLBACK dell'intera transazione corrente, utilizzare l'istruzione ROLLBACK senza la clausola TO SAVEPOINT oppure (nell'ambiente SQL Developer) l'icona ROLLBACK delle modifiche.

Il rollback dell'intera transazione corrente comporta le operazioni riportate di seguito.

Il rollback della transazione corrente solo al savepoint specificato effettua le operazioni riportate di seguito.

Per vedere l'effetto di un rollback in SQL Developer potrebbe essere necessario fare clic sull'icona Aggiorna.

Come risultato dell'Esempio 3-7, la tabella REGIONS contiene un'area denominata 'Medio Oriente e Africa' e un'area denominata 'Africa'. L'Esempio 3-8 corregge questo problema (una transazione molto semplice) e verifica la modifica, ma quindi esegue il rollback della transazione e verifica il rollback.

Esempio 3-8 Rollback di un'intera transazione

Prima della transazione:

SELECT * FROM REGIONS
ORDER BY REGION_ID;

Risultato:

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

5 rows selected.

Transazione (modifica della tabella):

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

Risultato:

1 row updated.

Verifica della modifica:

SELECT * FROM REGIONS
ORDER BY REGION_ID;

Risultato:

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

5 rows selected.

Esecuzione del rollback della transazione:

ROLLBACK;

Risultato:

Rollback complete.

Verifica del rollback:

SELECT * FROM REGIONS
ORDER BY REGION_ID;

Risultato:

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

5 rows selected.

Vedere anche: Oracle Database SQL Language Reference per informazioni sull'istruzione ROLLBACK