Una transacción comienza cuando se encuentra la primera sentencia SQL ejecutable. Para que los cambios producidos durante la transacción se hagan permanentes (no puedan deshacerse), se dispone de las siguientes opciones:
- Utilizar la sentencia
COMMIT
, la cual ordena a la base de datos que haga permanentes las acciones incluidas en la transacción. - Ejecutar una sentencia DDL (como
CREATE
,DROP
,RENAME
, oALTER
). La base de datos ejecuta implícitamente una ordenCOMMIT
antes y después de cada sentencia DDL. - Si el usuario cierra adecuadamente las aplicaciones de gestión de las bases de datos Oracle, se produce un volcado permanente de las cambios efectuados por la transacción.
Para que los cambios se puedan deshacer con ROLLBACK
es necesario que la variable de confirmación (AUTOCOMMIT
) esté a OFF
. Si está con el valor ON
cada sentencia se confirmará tras su ejecución.
Podemos modificar y comprobar su valor, bien desde SQLDeveloper eligiendo la opción Herramientas -> Preferencias , abriendo la opción Avanzada de Base de Datos y marcando o desmarcando la casilla de Confirmación automática, como se muestra en la imagen.