Bonjour,
J'ai un problème que je n'arrive mais alors vraiment pas à comprendre...
Voici ma requête :
J'ai une table livret qui a qu'une entrée pour un eleve et un item donné.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 select l.etat_itm_id from livret l where l.elv_id = 144254 and l.itm_id = 20093111;
Donc tout naturellement cette requète me renvois qu'une seule ligne.
Maintenant, si je met cette requète dans un curseur avec l'id de l'élève et l'id de l'item en paramètre, la c'est le drame.
J'ai 200 ligne de résultat!!!
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
24
25
26 set serveroutput on declare --Declaration du curseur avec la même requête cursor gc_livret_elv_item(elv_id number, itm_id number) is select l.etat_itm_id from livret l where l.elv_id = elv_id and l.itm_id = itm_id; c_livret gc_livret_elv_item%rowtype; begin DBMS_OUTPUT.ENABLE(); --Valeur de tests valides open gc_livret_elv_item(144254, 20093111); --Normalement on ne devrait avoir qu'une valeur de retour mais --ce n'est pas le cas loop fetch gc_livret_elv_item into c_livret; exit when gc_livret_elv_item%notfound; dbms_output.put_line(c_livret.etat_itm_id); end loop; close gc_livret_elv_item; end;
Pourtant c'est exactement la même requête et les même paramètres qui lui sont passé.
Est-ce que je loupe quelque chose là?
Je ne suis certes pas spécialiste PL/SQL mais je n'en suis pas à mon premier curseur et là, je ne vois vraiment pas ce qui cloche.
Merci d'avance pour votre aide,
Andréas
Partager