Methode count d'une variable de type collection
Bonjour,
J'utilise une collection dans une boucle pour compter le nombre de valeurs d'un champ du bloc.
Mais à la sortie quand j'utilise la méthode count pour afficher le nombre total d'éléments de la collection, il m'affiche un nombre erroné.
:NUMATTEPAPIER est le champ d'une ligne du bloc où je stocke les valeurs.
Voici mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| declare
TYPE TYP_TAB_A IS TABLE OF attestation_risque.NUMEPAPI %TYPE ;
tab2 TYP_TAB_A ;
msg varchar2(50) :='';
i number(1):=1;
BEGIN
tab2:= TYP_TAB_A();
first_record;
LOOP
IF :NUMATTEPAPIER is not null THEN
tab2.EXTEND(i);
tab2(i):= :NUMATTEPAPIER ;
END IF;
IF (:System.Last_Record = 'TRUE') THEN
EXIT;
ELSE
Next_Record;
i:=i+1;
END IF;
END LOOP;
FOR i IN tab2.FIRST .. tab2.LAST loop
IF tab2.EXISTS(i) then
msg:=msg || (tab2(i));
end if;
end loop;
message ('Nombre d'éléments :' || tab2.count); |
Quand je ne remplis que trois lignes, il m'affiche :
Nombre d'éléments : 6
D'où est le problème selon vous ?
Merci pour de l'aide.