sql >> Base de Datos >  >> RDS >> Oracle

¿Se requiere COMMIT después de cada EXECUTE IMMEDIATE?

Las únicas ocasiones en las que está realmente obligado a comprometerse, aparte de al final de una transacción comercial, son:

  1. Al ejecutar DDL:la ejecución de DDL está envuelta en un par de confirmaciones implícitas.
  2. Después de la inserción de ruta directa:la tabla no se puede leer hasta que se confirme la inserción.

Como comenta Horsey, el punto correcto para comprometerse es cuando se completa la transacción comercial. De lo contrario, debe escribir código usted mismo para detectar y corregir transacciones parcialmente completadas y comprometidas que han salido de la base de datos en un estado lógicamente inconsistente (por ejemplo, existe un registro FACTURA sin ningún registro FACTURA_DETALLE).