Invocación
Esta sentencia se puede incorporar a un programa de aplicación o emitir mediante el uso de sentencias de SQL dinámico. Se trata de una sentencia ejecutable que puede prepararse de forma dinámica.
Esta sentencia se puede incorporar a un programa de aplicación o emitir mediante el uso de sentencias de SQL dinámico. Se trata de una sentencia ejecutable que puede prepararse de forma dinámica.
Autorización
No se necesita.
No se necesita.
Descripción
Finaliza la unidad de trabajo en la que se ejecuta la sentencia COMMIT y se inicia una nueva unidad de trabajo. Se confirman todos los cambios realizados por las siguientes sentencias ejecutadas durante la unidad de trabajo: ALTER, COMMENT, CREATE, DROP, GRANT, LOCK TABLE, REVOKE, SET INTEGRITY, SET Variable y las sentencias de cambio de datos (INSERT, DELETE, MERGE, UPDATE), incluidas las anidadas en una consulta.
Sin embargo, las sentencias siguientes no están bajo el control de la transacción y los cambios que éstas realizan son independientes de la sentencia COMMIT:
Todos los bloqueos que ha adquirido la unidad de trabajo con posterioridad a su inicio se liberan, excepto los bloqueos que son necesarios para abrir los cursores que se han declarado como WITH HOLD. Todos los cursores abiertos no definidos como WITH HOLD se cierran. Los cursores abiertos que se han definido como WITH HOLD siguen abiertos y el cursor se coloca delante de la siguiente fila lógica de la tabla de resultados. (FETCH debe realizarse antes de emitirse una sentencia UPDATE o DELETE con posición.) Se liberan todos los localizadores de LOB. Observe que esto es verdadero incluso cuando los localizadores están asociados a valores LOB recuperados mediante un cursor que tenga la propiedad WITH HOLD.
Las sentencias de SQL dinámico preparadas en un paquete vinculado con la opción KEEPDYNAMIC YES se conservan en el contexto SQL después de una sentencia COMMIT. Éste es el comportamiento por omisión. La sentencia se puede volver a preparar de forma implícita, como resultado de operaciones DDL que se retrotraen dentro de la unidad de trabajo. Las sentencias de SQL dinámico inactivas preparadas en un paquete vinculado con KEEPDYNAMIC NO se eliminar del contexto SQL después de una operación COMMIT. La sentencia debe volver a prepararse antes de que se pueda ejecutar en una transacción nueva.
Finaliza la unidad de trabajo en la que se ejecuta la sentencia COMMIT y se inicia una nueva unidad de trabajo. Se confirman todos los cambios realizados por las siguientes sentencias ejecutadas durante la unidad de trabajo: ALTER, COMMENT, CREATE, DROP, GRANT, LOCK TABLE, REVOKE, SET INTEGRITY, SET Variable y las sentencias de cambio de datos (INSERT, DELETE, MERGE, UPDATE), incluidas las anidadas en una consulta.
Sin embargo, las sentencias siguientes no están bajo el control de la transacción y los cambios que éstas realizan son independientes de la sentencia COMMIT:
- SET CONNECTION
- SET PASSTHRU
- SET SERVER OPTION
- Asignaciones a registros especiales actualizables
Todos los bloqueos que ha adquirido la unidad de trabajo con posterioridad a su inicio se liberan, excepto los bloqueos que son necesarios para abrir los cursores que se han declarado como WITH HOLD. Todos los cursores abiertos no definidos como WITH HOLD se cierran. Los cursores abiertos que se han definido como WITH HOLD siguen abiertos y el cursor se coloca delante de la siguiente fila lógica de la tabla de resultados. (FETCH debe realizarse antes de emitirse una sentencia UPDATE o DELETE con posición.) Se liberan todos los localizadores de LOB. Observe que esto es verdadero incluso cuando los localizadores están asociados a valores LOB recuperados mediante un cursor que tenga la propiedad WITH HOLD.
Las sentencias de SQL dinámico preparadas en un paquete vinculado con la opción KEEPDYNAMIC YES se conservan en el contexto SQL después de una sentencia COMMIT. Éste es el comportamiento por omisión. La sentencia se puede volver a preparar de forma implícita, como resultado de operaciones DDL que se retrotraen dentro de la unidad de trabajo. Las sentencias de SQL dinámico inactivas preparadas en un paquete vinculado con KEEPDYNAMIC NO se eliminar del contexto SQL después de una operación COMMIT. La sentencia debe volver a prepararse antes de que se pueda ejecutar en una transacción nueva.
Se liberan todos los puntos de salvaguarda definidos dentro de la transacción.Las siguientes sentencias tienen un comportamiento diferente al de otras sentencias de lenguaje de definición de datos (DDL) y de lenguaje de control de datos (DCL). Los cambios realizados por estas sentencias no surten efecto hasta que se confirma la sentencia, incluso para la conexión actual que emite la sentencia. Una aplicación sólo puede emitir una de estas sentencias cada vez y sólo se permite una de estas sentencias dentro de una unidad de trabajo. Cada sentencia debe ir seguida de una sentencia COMMIT o ROLLBACK antes de que pueda emitirse otra de estas sentencias.
- CREATE SERVICE CLASS, ALTER SERVICE CLASS o DROP (SERVICE CLASS)
- CREATE THRESHOLD, ALTER THRESHOLD o DROP (THRESHOLD)
- CREATE WORK ACTION, ALTER WORK ACTION o DROP (WORK ACTION)
- CREATE WORK CLASS, ALTER WORK CLASS o DROP (WORK CLASS)
- CREATE WORKLOAD, ALTER WORKLOAD o DROP (WORKLOAD)
- GRANT (privilegios de carga de trabajo) o REVOKE (privilegios de carga de trabajo)
Notas
- Se recomienda encarecidamente que cada proceso de aplicación finalice explícitamente su unidad de trabajo antes de terminar. Si el programa de aplicación finaliza normalmente sin una sentencia COMMIT ni ROLLBACK entonces el gestor de bases de datos intenta una confirmación o retrotracción según el entorno de aplicación.
- Para obtener información acerca del efecto de COMMIT en las sentencias de SQL dinámico colocadas en la memoria caché, consulte la sección "EXECUTE".
- Para obtener información acerca de los posibles efectos de COMMIT en las tablas temporales creadas, consulte la sección "CREATE GLOBAL TEMPORARY TABLE".
- Para obtener información acerca de los posibles efectos de COMMIT en las tablas temporales declaradas, consulte la sección "DECLARE GLOBAL TEMPORARY TABLE".
- Las sentencias de SQL dinámico siguientes pueden estar activas durante la operación COMMIT:
- Cursor WITH HOLD abierto
- Sentencia COMMIT
- Sentencias CALL en las que se ha ejecutado la sentencia COMMIT
No hay comentarios:
Publicar un comentario