Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.
Oracle/PLSQL: Comportamiento de reversión y DDL
P: Estoy usando un indicador de SQL (por ejemplo, SQLPlus). Después de realizar algunas operaciones DML, hago un ROLLBACK, que en este caso retrocede al área correcta del punto de guardado.
Sin embargo, si ejecuto DDL en medio de una operación DML, no vuelvo al mismo punto de guardado. DDL no tiene nada que ver con la tabla para la que estoy haciendo DML. ¿Cómo retrocede Oracle a un punto de guardado diferente cuando ejecuto DDL?
R: Primero, expliquemos algunos de los términos que usó en su pregunta.
DML Significa “Lenguaje de manipulación de datos”. Las operaciones DML incluyen sentencias SELECT, INSERT, UPDATE y DELETE.
DDL Significa “Lenguaje de definición de datos”. Las operaciones DDL incluyen CREATE TABLE, CREATE INDEX y otras.
La instrucción Rollback deshace todos los cambios de la sesión actual hasta el punto de guardado especificado.
Cuando realiza una operación DDL, hay una confirmación implícita después de la DDL. Luego cambie el punto de guardado a la ubicación después de la operación DDL. Por lo tanto, cualquier reversión solo deshará los cambios en el nuevo punto de guardado; esto es después de la última operación DDL.