Sobre Instruções de Controle de Transações
Uma transação é uma sequência de um ou mais comandos SQL tratados pelo Oracle Database como uma unidade: todas as instruções são executadas ou nenhuma delas. Transações são necessárias para modelar processos de negócios que exigem que diversas operações sejam executadas como uma unidade.
Por exemplo, quando um gerente sai da empresa, uma linha deve ser inserida na tabela JOB_HISTORY para mostrar quando o gerente saiu e, para cada funcionário que se reporta a esse gerente, o valor de MANAGER_ID deve ser atualizado na tabela EMPLOYEES. Para modelar esse processo em uma aplicação, você deve agrupar as instruções INSERT e UPDATE em uma única transação.
As instruções de controle de transação básicas são SAVEPOINT, COMMIT e ROLLBACK:
-
SAVEPOINT marca um ponto de salvação em uma transação — um ponto para o qual você pode fazer rollback posteriormente. Os pontos de salvamento são opcionais e uma transação pode ter vários deles.
-
COMMIT encerra a transação atual, torna suas alterações permanentes, apaga seus pontos de salvamento e libera seus bloqueios,
-
ROLLBACK faz ROLLBACK (desfaz) de toda a transação atual ou apenas das alterações feitas após o ponto para salvamento especificado.
No ambiente SQL*Plus, você pode informar uma instrução do controle de transação após o prompt SQL>.
No ambiente SQL Developer, você pode inserir uma instrução do controle de transação na Planilha. O SQL Developer também tem ícones Commit Changes and Rollback Changes, explicados em "Commitindo Transações" e "Fazendo Rollback de Transações".
Cuidado:
Se você não fizer commit explícito de uma transação e o programa terminar de maneira anormal, o banco de dados fará rollback automaticamente da última transação sem commit.
Devido a esse comportamento, encerre explicitamente transações em programas do aplicativo confirmando-as ou revertendo-as.
Consulte também:
-
Oracle Database Concepts para obter mais informações sobre o gerenciamento de transações
-
Referência de Linguagem SQL do Oracle Database para mais informações sobre instruções de controle de transação