script - Oracle: DDL y reversión de transacciones
script rollback oracle (3)
Acabo de descubrir esto, por lo que necesita más investigación, pero la autorización de creación de esquemas de Oracle al menos permite agrupar varias declaraciones DDL en una sola transacción, evitando así varias confirmaciones y no garantiza efectos secundarios, es decir, una reversión, si alguna de las declaraciones de DDL falla
No está claro si la reversión se aplica solo a las sentencias DDL envueltas , como si el esquema de creación inició un punto de guardado, o la transacción externa con posiblemente alguna sentencia DML anterior.
Sin embargo, aún no puede evitar la confirmación después de que la última declaración DDL envuelta se complete con éxito.
¿Podría en Oracle DDL (crear / alterar) ser transaccional como lo es en MS SQL (iniciado desde 2005)?
DDL no es transaccional en Oracle. Del doc 11.2 :
La base de datos Oracle confirma implícitamente la transacción actual antes y después de cada declaración DDL.
No. En Oracle, las declaraciones DDL en sí mismas no son transaccionales.
La ejecución de una declaración DDL cometerá implícitamente cualquier transacción abierta para esa sesión antes de comenzar el trabajo real.
Además, algunas declaraciones, como una declaración de alterar tabla, pueden fallar si otra sesión tiene una transacción abierta en el objeto que se está modificando o una de sus dependencias. Puede configurar un ddl_lock_timeout para especificar cuánto tiempo desea que Oracle espere a que el objeto esté disponible.
Consulte Declaraciones de DDL para obtener un resumen de los tipos de declaraciones de DLL e información sobre su comportamiento con respecto a bloqueos y transacciones.