Bonjour,
Voila j'ai un petit soucis : au moment ou je veux valider le contenu de ma forme je fais qq validations/verifications sur ce qui a été fait par l'utilisateur avant de lancer le mecanisme d'insertion et de commit. La procedure de validation est appelée dans PRE-COMMIT.
Cette forme etant composée de plusieurs blocs je passe de l'un a l'autre lors de ma validation grace a GO_BLOCK()
Lors de l'execution, j'obtiens un FRM-40737 sur le 1er de ces GO_BLOCK : il est en effet interdit d'utiliser une fonction restreinte dans un trigger pre- ou post-
Pour contourner le pb j'ai suivi les conseils de metalink : remplacer mon code de verification dans le trigger PRE-COMMIT par des create_timer et reporter mes verifications dans le trigger WHEN-TIMER-EXPIRED (là les GO_BLOCK sont autorises).
Le probleme, c'est que contrairement à ce que je lis dans la litterature Oracle, le trigger WHEN-TIMER-EXPIRED n'est pas appele tout de suite apres la commande create_timer. Il est est meme appele suffisemment tard pour qu'il soit appele apres que le mecanisme d'insertion ait eu lieu. J'insere donc sans verifier mes données...
Qqun a déjà rencontré ce probleme ?
PS : voici la syntaxe que j'utilise pour la commande create_timer
Je crée donc un délai de 1ms et qui n'est pas répété.
Code : Sélectionner tout - Visualiser dans une fenêtre à part V_TIMER_ID := CREATE_TIMER('id_valid', 1,no_repeat);
Partager