manejo transaccional
MANEJO TRANSACCIONAL EN ORACLE
Una transacción es un conjunto de operaciones que se ejecutan en una base de datos, y que son tratadas como una única unidad lógica por el SGBD.
Es decir, unatransacción es una o varias sentencias SQL que se ejecutan en una base de datos como una única operación, confirmándose o deshaciéndose en grupo.
No todas las operaciones SQL son transaccionales.Sólo son transaccionales las operaciones correspondientes al DML, es decir, sentencias SELECT, INSERT, UPDATE y DELETE.
Para confirmar una transacción se utiliza la sentencia COMMIT. Cuandorealizamos COMMIT los cambios se escriben en la base de datos.
Para deshacer una transacción se utiliza la sentencia ROLLBACK. Cuando realizamos ROLLBACK se deshacen todas las modificaciones realizadaspor la transacción en la base de datos, quedando la base de datos en el mismo estado que antes de iniciarse la transacción.
Un ejemplo clásico de transacción son las transferencias bancarias.Para realizar una transferencia de dinero entre dos cuentas bancarias debemos descontar el dinero de una cuenta, realizar el ingreso en la otra cuenta y grabar las operaciones y movimientosnecesarios, actualizar los saldos. Si en alguno de estos puntos se produce un fallo en el sistema podríamos hacer descontado el dinero de una de las cuentas y no haberlo ingresado en la otra.
Por lotanto, todas estas operaciones deben ser correctas o fallar todas. En estos casos, al confirmar la transacción (COMMIT) o al deshacerla (ROLLBACK) garantizamos que todos los datos quedan en un estadoconsistente.
En una transacción los datos modificados no son visibles por el resto de usuarios hasta que se confirme la transacción.
El siguiente ejemplo muestra una supuesta transacción bancariaDECLARE
importe NUMBER;
ctaOrigen VARCHAR2(23);
ctaDestino VARCHAR2(23);
BEGIN
importe := 100;
ctaOrigen := '2530 10 2000 1234567890';
ctaDestino := '2532...
Regístrate para leer el documento completo.