Transações de Rollback

A reversão de uma transação desfaz suas alterações. É possível fazer o rollback de toda a transação atual ou fazer o seu rollback apenas em um ponto de salvamento especificado.

Para reverter a transação atual somente para um ponto de salvamento especificado, você deve usar a instrução ROLLBACK com a cláusula TO SAVEPOINT.

Para fazer ROLLBACK de toda a transação atual, use a instrução ROLLBACK sem a cláusula TO SAVEPOINT ou (no ambiente do SQL Developer) o ícone ROLLBACK Changes.

Fazer rollback de toda a transação atual faz o seguinte:

Fazer rollback da transação atual somente no ponto de salvamento especificado faz o seguinte:

Para ver o efeito de um rollback no SQL Developer, talvez você precise clicar no ícone Atualizar.

Como resultado do Exemplo 3-7, a tabela REGIONS tem uma região chamada "Oriente Médio e África" e uma região chamada "África". Exemplo 3-8 corrige esse problema (uma transação muito simples) e verifica a alteração, mas, em seguida, faz rollback da transação e verifica o rollback.

Exemplo 3-8 Fazendo Rollback de uma Transação Inteira

Antes da transação:

SELECT * FROM REGIONS
ORDER BY REGION_ID;

Resultado:

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

5 rows selected.

Transação (tabela de alterações):

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

Resultado:

1 row updated.

Verificar a alteração:

SELECT * FROM REGIONS
ORDER BY REGION_ID;

Resultado:

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

5 rows selected.

Fazer o rollback da transação:

ROLLBACK;

Resultado:

Rollback complete.

Verificar o rollback:

SELECT * FROM REGIONS
ORDER BY REGION_ID;

Resultado:

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

5 rows selected.

Consulte Também: Referência de Linguagem SQL do Oracle Database para obter informações sobre a instrução ROLLBACK