Acerca de las Sentencias de Control de Transacciones
Una transacción es una secuencia de unas o más sentencias SQL que Oracle Database trata como una unidad: se realizan todas las sentencias o ninguna de ellas. Necesita transacciones para modelar procesos de negocio que necesitan que se realicen varias operaciones como una unidad.
Por ejemplo, cuando un gestor salga de la compañía, se debe insertar una fila en la tabla JOB_HISTORY que muestre cuándo se marchó el gestor y, para cada empleado que dependa de ese gestor, el valor de MANAGER_ID se debe actualizar en la tabla EMPLOYEES. Para modelar este proceso en una aplicación, debe agrupar las sentencias INSERT y UPDATE en una sola transacción.
Las sentencias de control de transacciones básicas son SAVEPOINT, COMMIT y ROLLBACK:
-
SAVEPOINT marca un punto de guardado en una transacción, punto al que puede realizar rollback posteriormente. Los puntos de grabación son opcionales y una transacción puede tener varios.
-
COMMIT finaliza la transacción actual, borra sus puntos de copia y libera sus bloqueos.
-
ROLLBACK realiza ROLLBACK (deshace) de toda la transacción actual o sólo los cambios realizados después del puntos de grabación especificado.
En el entorno de SQL*Plus, puede introducir una sentencia de control de transacción después de la petición de datos SQL>.
En el entorno de SQL Developer, puede introducir una sentencia de control de transacción en la hoja de trabajo. SQL Developer también tiene iconos Confirmar Cambios y Deshacer cambios, que se explican en "Confirmación de Transacciones" y "Rollback de Transacciones".
Atención:
Si no confirma explícitamente una transacción y el programa termina de manera anormal, la base de datos realiza automáticamente rollback de la última transacción sin confirmar.
Debido a este comportamiento, finalice explícitamente las transacciones en programas de aplicación confirmándolas o realizando rollback de la misma.
Consulte además:
-
Oracle Database Concepts si desea obtener más información acerca de la gestión de transacciones
-
Referencia de lenguaje SQL de Oracle Database para obtener más información sobre las sentencias de control de transacciones