Informazioni sulle istruzioni di controllo delle transazioni
Una transazione è una sequenza di uno o più istruzioni SQL che Oracle Database tratta come una sola unità: vengono eseguite tutte le istruzioni oppure nessuna di esse. È necessario utilizzare le transazioni per modellare business process che richiedono l'esecuzione di più operazioni come un'unica unità.
Ad esempio, quando un responsabile lascia l'azienda, è necessario inserire una riga nella tabella JOB_HISTORY per indicare quando è via, nonché aggiornare il valore di MANAGER_ID nella tabella EMPLOYEES per ogni dipendente che fa riferimenti a tale responsabile. Per modellare questo processo in un'applicazione, è necessario raggruppare le istruzioni INSERT e UPDATE in una singola transazione.
Le istruzioni di controllo delle transazioni di base sono SAVEPOINT, COMMIT e ROLLBACK:
-
SAVEPOINT che indica un SAVEPOINT in una transazione, ovvero un punto al quale è possibile effettuare il rollback più tardi. I savepoint sono facoltativi e una transazione può avere più savepoint.
-
COMMIT termina la transazione corrente, ne rende permanenti le modifiche, ne cancella il savepoint e ne rilascia i lock.
-
ROLLBACK esegue il ROLLBACK (annulla) dell'intera transazione corrente o solo delle modifiche apportate dopo il savepoint specificato.
Nell'ambiente SQL*Plus è possibile immettere un'istruzione di controllo delle transazioni dopo il prompt SQL>.
Nell'ambiente SQL Developer è possibile immettere un'istruzione di controllo della transazione nel Foglio di lavoro. In SQL Developer sono inoltre disponibili le icone Commit delle modifiche e Rollback delle modifiche, descritte in "Esecuzione del commit di transazioni" e "Esecuzione del rollback di transazioni".
Attenzione:
Se non si esegue un commit esplicito di una transazione in modo esplicito e il programma termina in maniera anomala, il database esegue automaticamente il rollback dell'ultima transazione di che non ha eseguito il Commit.
A causa di questo comportamento, terminare esplicitamente le transazioni nei programmi applicativi eseguendone il commit o il rollback.
Vedere anche:
-
Oracle Database Concepts per ulteriori informazioni sulla gestione delle transazioni
-
Oracle Database SQL Language Reference per ulteriori informazioni sulle istruzioni di controllo delle transazioni