Bonjour,

Je rencontre un problème lorsque j'essaie de faire un COUNT au milieu d'une procédure stockée.

(je vous passe une partie de la proc stoc qui est assez longue, mais toutes les variables sont correctement déclarées.)

Voici cette requête :
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
20
21
22
23
...
nval              INTEGER;
...
lst_jalons := typ_tab (...);  -- contient 3 elements
lst_type_jalons := typ_tab (...); -- contient 2 elements
 
FOR i IN 1 .. 3
LOOP
   FOR j IN 1 .. 2
   LOOP
      SELECT COUNT(1) INTO nval
      FROM t_aff_planif ap, t_ind_affaires ia
      WHERE lst_jalons(i) IS NOT NULL
      AND ap.aff_type_planif = ''''||lst_type_jalons(j)||''''
      AND ia.ind_id = cur.ind_id
      AND ia.ctre_id = pctre_id
      AND ia.ind_an = ''''||nannee||''''
      AND ia.ind_mois = ''''||nmois||''''
      AND ap.aff_id = ia.aff_id;
 
      njalnum := njalnum + nval;
   END LOOP;
END LOOP;
Si j'affiche juste derrière le contenu de mes variables avec 'dbms_output.put_line' le contenu est correct.
Mais 'nval' reste définitivement égal à 0, alors que manuellement et isolée, la même requete me retourne bien un nombre.

J'ai également essayé plusieurs écriture pour faire ce 'SELECT' avec notamment la méthode EXECUTE IMMEDIATE.
Mais même résultat.

Merci de votre aide.