Salut à tous,
J’ai commencé le plsql il ya de cela 1 semaine déjà. Et voici mon problème. J’ai cette procédure plsql qui fonctionne bien. Mais mon problème est que je reçois plus de résultats que prévu.

Soient mes tables :
Table1
Id1| val1|val2
1 200 302
2 104 222

Table2
Id2| nr| bez| bez2
1 1 A Abien
2 2 B Bien
3 3 C Pass

Table3
id1|nr|bez2|bez|id1|ids

je selectionne à l’aide d’un curseur id1 dans la table1, et à l’aide d’un autre curseur2 id1|nr|bez|bez2 dans la table2 pour construire la table3. Dans la table3 je dois me retrouver avec 6 lignes qui sont les suivantes :

Table 3
id1|nr|bez2| bez|id1|ids
1 1 Abien A 1 1
2 2 bien B 1 2
3 3 pass C 1 3
4 1 Abien A 2 1
5 2 bien B 2 2
6 3 pass C 2 3

Mais mon code me retourne 9 lignes, donc le dernier bloc 2 fois au lieu d’une fois. Je ne sais pas ou se trouve ma faute. Aidez moi SVP ?
Est-ce une erreur dans ma boucle ? Je ne vois plus claire. Aidez moi svp ?

Resultat de la requete
id1| nr| bez2| bez| id1| ids
1 1 Abien A 1 1
2 2 bien B 1 2
3 3 pass C 1 3
4 1 Abien A 2 1
5 2 bien B 2 2
6 3 pass C 2 3
7 1 Abien A 2 1
8 2 bien B 2 2
9 3 pass C 2 3

Mon code plsql sous ORACLE 10 g
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
27
Declare
c1 table1.id1%TYPE;
c2 table2.id2%TYPE;
c3 table2.nr%TYPE;
c4 table2.bez%TYPE;
c5 table2.bez2%TYPE;
 
cursor monCursor is select id1 from table1 order by datum;
cursor monCursor2 is select id2, nr, bez,bez2 from table2 
                     from table2 order by schicht_nr;
Begin
    open monCursor;
    loop
        fetch monCursor into c1;
        --2eme Curseur---
            open monCursor2;
            loop
                fetch monCursor2 into c2, c3, c4, c5;
                exit when  monCursor2%NOTFOUND;
                    insert into table3(id1,nr,bez2,bez,id1,ids)
                    values(table3_seq.nextval,c3,c5, c4,c1,c2);
            end loop;
            close monCursor2;
            exit when monCursor%NOTFOUND;
            end loop,
            close monCursor;
end;
Merci de vos aides
Fiona