Bonjour à tous, j'ai un problème que je n'arrive pas à résoudre.
J'insère des tuples dans une table que je nomme test mais le problème et que je ne veux pas insérer un tuple qui est déjà dans la base test. Et je ne peux pas utiliser de distinct dans le SELECT, car je dois vérifier chaque tuples.
La section DECLARE est bien déclarée ne vous en faites pas.

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
 
BEGIN
        Open c1;
        FETCH c1 INTO lu_nomusu, lu_nompat, lu_prenom, lu_dtenai, lu_depcol, lu_motdep;
        co_nomusu := lu_nomusu;
        co_nompat := lu_nompat;
        co_prenom := lu_prenom;
        co_dtenai := lu_dtenai;
        co_depcol := lu_depcol;
        co_motdep := lu_motdep;
    LOOP
        FETCH c1 INTO lu_nomusu, lu_nompat, lu_prenom, lu_dtenai, lu_depcol, lu_motdep;
        IF lu_nompat = co_nompat AND lu_prenom = co_prenom AND lu_dtenai = co_dtenai THEN
          IF lu_depcol IS NULL AND co_depcol IS NULL THEN
            INSERT INTO ANOMALIE VALUES
              (
              lu_nomusu, lu_nompat, lu_prenom, lu_dtenai, lu_depcol, lu_motdep
              );
            INSERT INTO ANOMALIE VALUES
              (
              co_nomusu, co_nompat, co_prenom, co_dtenai, co_depcol, co_motdep
              );
          END IF;
          IF lu_depcol IS NULL THEN
            ins_nomusu := lu_nomusu;
            ins_nompat := lu_nompat;
            ins_prenom := lu_prenom;
            ins_dtenai := lu_dtenai;
            ins_depcol := lu_depcol;
            ins_motdep := lu_motdep;
          ELSE 
            IF lu_depcol > co_depcol AND co_depcol IS NOT NULL THEN
              ins_nomusu := lu_nomusu;
              ins_nompat := lu_nompat;
              ins_prenom := lu_prenom;
              ins_dtenai := lu_dtenai;
              ins_depcol := lu_depcol;
              ins_motdep := lu_motdep;
            END IF;
          END IF;
        ELSE
          IF /* Si pas dans la table */ THEN 
            INSERT INTO UNEFOIS VALUES           
            (
            ins_nomusu, ins_nompat, ins_prenom, ins_dtenai, ins_depcol, ins_motdep
            );
          END IF;
        END IF;
        co_nomusu := lu_nomusu;
        co_nompat := lu_nompat;
        co_prenom := lu_prenom;
        co_dtenai := lu_dtenai;
        co_depcol := lu_depcol;
        co_motdep := lu_motdep;
        EXIT WHEN c1%NOTFOUND;
    END LOOP;
    CLOSE c1;
END;
Merci à tous.