Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Octubre, 2019
Una transacción se puede definir como: Una unidad de trabajo compuesta por
diversas tareas, cuyo resultado final debe ser que se ejecuten todas o ninguna
de ellas. En Oracle serian sentencias SQL que se ejecutan a la base de datos
como una única operación confirmándose o deshaciéndose en manera total.
Ejemplo
UPDATE products
SET quantity = 55
WHERE product= 59495;
SAVEPOINT A1;
UPDATE products
SET quantity = 504;
ROLLBACK TO SAVEPOINT A1;
COMMIT;
En el anterior ejemplo los cambios realizados por el segundo UPDATE no son
salvados cuando se realiza el COMMIT, dado que el ROLLBACK anterior a este
los revierte.
Debemos tener en cuenta que la base de datos de Oracle provee mecanismos
de bloqueo para que solo un usuario pueda modificar un registro a la base de
datos.
En el siguiente ejemplo podemos apreciar el uso del commit y/o el rollback en
esta ejecución de procedimiento solo se salvaguardará los cambios si no se ha
presentado ningún error en caso de presentarse una EXCEPTION se ejecutará
el comando ROLLBACK y la base de datos no tomará ningún cambio ejecutado.
-----
BEGIN
update alumnos set edad=20 where n_alumno=109;
update nuevos set apellido='perez' where n_alumno=200;
commit;
EXCEPTION
WHEN OTHERS THEN
rollback;
END; Transacciones
SI NO
ROLLBACK ¿Error? COMMIT
AA10 - Evidencia 3: Manejo de transacciones, bloqueos y control de concurrencia