Oracle
 sql >> Base de données >  >> RDS >> Oracle

Est-ce que COMMIT est requis après chaque EXECUTE IMMEDIATE ?

Les seuls moments où vous êtes vraiment obligé de vous engager, autres qu'à la fin d'une transaction commerciale, sont :

  1. Lors de l'exécution de DDL :l'exécution de DDL est enveloppée dans une paire de validations implicites.
  2. Après l'insertion directe du chemin :la table ne peut pas être lue tant que l'insertion n'est pas validée.

En tant que commentaires chevalins, le bon moment pour s'engager est lorsque la transaction commerciale est terminée. Sinon, vous devez écrire vous-même du code pour détecter et corriger les transactions partiellement terminées et validées qui ont quitté la base de données dans un état logiquement incohérent (par exemple, un enregistrement INVOICE existe sans aucun enregistrement INVOICE_DETAIL).