J'essayais de trouver un vrai problème de programmation qui pourrait être mieux résolu en utilisant des transactions autonomes dans des transactions autonomes, mais je ne pouvais pas en imaginer.Existe-t-il un cas d'utilisation pour les transactions autonomes imbriquées?
Pouvez-vous me donner des idées?
Edit:
Je veux dire quelque chose comme ceci:
PROCEDURE outer_procedure
IS
BEGIN
-- some code
auto_proc1;
END;
/
PROCEDURE auto_proc1
IS PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
-- some code
auto_proc2;
END;
/
PROCEDURE auto_proc2
IS PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
-- some code
NULL;
END;
/
Ces deux ne nécessitent pas d'utiliser plus d'un seul niveau de transactions autonomes. – jva
Désolé, sans la clarification, je n'ai pas compris ce que vous vouliez dire. Je ne l'ai jamais utilisé dans la vie réelle, mais vous pouvez l'avoir dans l'exemple suivant: Une combinaison de ces 2: Vous avez besoin d'une transaction autonome (par exemple parce que vous ne voulez pas garder un verrou ouvert), mais vous voulez toujours consigner le résultat de cette transaction dans une table quel que soit le résultat (commit/rollback) de la transaction autonome principale. – Edwin