voilà je chercher à récupérer le prochain message_id
pour cela je fait un select max message_id
puis je fecth le résultat dans ma variable en out
si le résultat de la requête et null alors je décide de mettre le paramètre à 1.
sinon j'incrémente mon message_Id.
et finalement je retourne mon paramètre.

Avez vous une idée de ce qui peut empêcher l'exécution de ce bloque.
Y a t'il une erreur de codage flagrante ?

merci de votre aide

voici le code en question :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
DECLARE
   mess_id_ NUMBER;
 
CURSOR get_last_message_id_ IS
   SELECT MAX(message_id)
   FROM &AO.PURCHASE_ORDER_RESPONSE;
 
BEGIN
   OPEN get_last_message_id_;
      FETCH get_order_info_ INTO mess_id_;
      IF get_order_info_%FOUND THEN
         mess_id_ := (mess_id_ + 1 );
      ELSE
          mess_id_ := 1;
      END IF
   CLOSE get_last_message_id_;
   :MESS_ID_:= mess_id_ ;
END;
edit : le select Max marche, déjà tester à part