Bnjour tout le monde.

Alors voilà j'ai un petit problème avec un procédure, un Bug que je n'arrivep as à expliquer.

J'ai un curseur

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
cursor cur_verif_cpt_sain is
select sum(solde_comptable) solde_comptable, code_devise
from tmpcompte
where cdos = :PARAMETER.P_CDOS
and numero_client = tmpcli.numero_client
and code_produit != (select col4 from cxparametre where cdos = :PARAMETER.P_CDOS and code_param = 'CPTREC')
and numero_compte_genera not in (select numero_compte_genera from cxcompte_general where cdos = :PARAMETER.P_CDOS and nature in ('G','P'))	
group by code_devise;
Bref, un petit curseur sympa quoi.

Pour le parcourir je fais la boucle suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
open cur_verif_cpt_sain;
 
fetch cur_verif_cpt_sain into sum_wsolde_comptes,w_code_devise_cpt;
 
while cur_verif_cpt_sain%found loop
 
   wsolde_comptes := wsolde_comptes + une fonction(sum_wsolde_comptes);
 
   fetch cur_verif_cpt_sain into sum_wsolde_comptes,w_code_devise_cpt;
 
end loop;
 
close cur_verif_cpt_sain;
J'ai bien sûr vérifié qu'il y avait des enregistrements ramenés par mon curseur en faisant un select count(distinct code_devise) avant (j'ai un enregistrement). Et le programme passe pourtant sur le open, le fetch et le résultat de ce dernier donne bien sûr les valeurs null dans les deux variables de destination.

J'ai essayé aussi avec la syntaxe
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
for mavariable in moncuseur loop
end loop;
Toujours le même problème.

Est-ce que quelqu'un pourrait m'expliquer ce qu'il se passe ?