jueves, 10 de noviembre de 2016

ROLLBACK


Fallos del Sistema
Cuando un fallo del sistema interrumpe una transacción, se hace ROLLBACK en toda la transacción automáticamente. Esto impide que el error provoque cambios no deseados en los datos y devuelve las tablas a su estado en el momento de la última validación. De esta forma, Oracle Server protege la integridad de las tablas.
Desde iSQL*Plus, se consigue una salida normal de la sesión haciendo clic en el botón Exit. Con SQL*Plus, se consigue una salida normal escribiendo el comando EXIT en el prompt. Cerrar la ventana se interpreta como una salida anormal.

Rollback en los Cambios 
Deseche todos los cambios pendientes mediante la sentencia ROLLBACK, lo que da esto como resultado: 
  • Se deshacen los cambios de datos. 
  • Se restaura el estado anterior de los datos. 
  • Se liberan los bloqueos en las filas afectadas.

Ejemplo:
Mientras intenta eliminar un registro de la tabla TEST, puede vaciar la tabla por accidente. Puede corregir el error, volver a emitir la sentencia correcta y hacer permanentes los cambios en los datos. 



Rollback de Nivel de Sentencia 
Se puede desechar parte de una transacción mediante un rollback implícito si se detecta un error de ejecución de sentencia. Si falla una única sentencia DML durante la ejecución de una transacción, se deshace su efecto mediante un rollback de nivel de sentencia, pero los cambios realizados por las sentencias DML de la transacción no se desechan. El usuario puede validarlos o hacer ROLLBACK en ellos explícitamente. 
Oracle Server emite una validación implícitamente antes y después de cualquier sentencia DDL. Así pues, si la sentencia DDL no se ejecuta correctamente, no puede hacer ROLLBACK en la sentencia anterior porque el servidor emitió una validación. 
Termine las transacciones explícitamente ejecutando una sentencia COMMIT o ROLLBACK.

  • Si falla una única sentencia DML durante la ejecución, sólo se hace rollback de esa sentencia.
  • Oracle Server implementa un punto de grabación implícito.
  • Se retienen todos los demás cambios.
  • El usuario debe terminar las transacciones explícitamente ejecutando una sentencia COMMIT o ROLLBACK.




Share:

0 comentarios:

Publicar un comentario

Archivo

Cual es el tema de mayor interes para ti?