Aprenda cuando se debe utilizar la sentencia ROLLBACK

Saber cuando se debe utilizar la sentencia ROLLBACK te permitirá mantener la consistencia de la información dentro de tu Base de Datos.

La sentencia ROLLBACK te permite deshacer todas las modificaciones que se han realizado a la Base de Datos pero que no han sido escritas en el Disco Duro por la sentencia COMMIT, es decir, elimina de la memoria todos los cambios realizados en la Base de Datos hasta el ultimo COMMIT que fue realizado.

La sentencia ROLLBACK generalmente se usa cuando ocurren errores en los procesos para dejar los datos consistentes como estaban al principio del proceso, veamos un ejemplo de cómo se utiliza:

/* Procedures en Oracle */

Procedure Prc_Cambiar_Departamento(pin_id_departamento in number) Is

Begin

For r_Dat In (Select emp.id_empleado, emp.rut, emp.nombre, emp.estado_civil From T_Empleado emp Where emp.id_depatamento = pin_id_departamento and emp.estado_civil = 1 — 1= Soltero

) Loop

Update T_Empleado Set id_departamento = 25 Where id_empleado =  r_Dat.id_empleado;

End Loop;

Commit;

Exception

When Others Then

Rollback;

lst_error:= ‘Ha ocurrido un error en el proceso’;

End Prc_Cambiar_Departamento;

TÚ REPORTE: “Cómo Construir un SELECT Eficiente en ORACLE en Solo 7 Pasos”  ¡ Haz Click Aquí y Descárgalo GRATIS Ahora !

En este ejemplo se puede apreciar que si ocurre algún error que no permita procesar todos los empleados no se permite hacer el COMMIT y en la excepción del proceso se realiza un ROLLBACK para deshacer todos los cambios que se habían realizado.

Estoy muy interesado en conocer tu opinión y/o comentario sobre este artículo, también cuéntame sobre qué es lo que quieres saber de Packages en Oracle y/o dime cuál es tu principal frustración a la hora de trabajar con Packages en Oracle. Estaré muy atento respondiendo tus preguntas y/o comentarios, gracias.

Saludos

Roberto Vicencio - Escritor del Reporte:

Cómo Construir un SELECT Eficiente en ORACLE en 7 Pasos

About these ads
Esta entrada fue publicada en Packages en Oracle y etiquetada , , , , , . Guarda el enlace permanente.

2 respuestas a Aprenda cuando se debe utilizar la sentencia ROLLBACK

  1. DBA Vzla dijo:

    Saludos a todos:

    “La sentencia ROLLBACK te permite deshacer todas las modificaciones …. que no han sido escritas en el Disco Duro por la sentencia COMMIT” Esta afirmación es un falsa creencia ya que los bloques de datos puede ser escrito a disco por los DBWR sin que se haya realizado un “COMMIT” esto sucede cuando la instancia realiza el CHECKPOINT. Por lo cual una humilde recomendación afirmar que se pueden deshacer las transacciones que no han sido comprometidas con un commit explicito o implicito.

    • Hola Vzla, gracias por comunicarte, desde el punto de vista de DBA puede que tengas razón, ya que Oracle cuando no puede mantener muchos datos en la memoria o en el segmento de Rollback internamente debe escribirlos a disco de forma temporal para liberar recursos mientras espera un Commit o un Rollback, si esto no ocurriera y Oracle escribiera los datos al disco sin esperar la orden del Commit, Oracle No sería una base de datos consistente y segura.

      PD: Ya obtuviste mi reporte gratuito sobre ‘Como Construir un SELECT Eficiente en Oracle en Solo 7 Pasos’, si aun no haces, puedes obtenerlo haciendo clic aquí:
      http://dominatuspackagesenoracle.com/

      Saludos
      Roberto Vicencio – Para Tu Éxito con Oracle.

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s