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 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
|
DECLARE
/* pour mémoriser occurrence lue */
lu_codcol VARCHAR2(5);
lu_codagt NUMBER;
lu_nomusu VARCHAR2(30);
lu_nompat VARCHAR2(30) := ' ';
lu_prenom VARCHAR2(25) := ' ';
lu_dtenai DATE := NULL;
lu_depcol DATE := NULL;
lu_motdep VARCHAR2(1);
/* pour comparer avec occurrence lue */
co_codcol VARCHAR2(5);
co_codagt NUMBER;
co_nomusu VARCHAR2(30);
co_nompat VARCHAR2(30) := ' ';
co_prenom VARCHAR2(25) := ' ';
co_dtenai DATE := NULL;
co_depcol DATE := NULL;
co_motdep VARCHAR2(1);
/* pour mémoriser occurrence à inserer */
ins_codcol VARCHAR2(5);
ins_codagt NUMBER;
ins_nomusu VARCHAR2(30);
ins_nompat VARCHAR2(30) := ' ';
ins_prenom VARCHAR2(25) := ' ';
ins_dtenai DATE := NULL;
ins_depcol DATE := NULL;
ins_motdep VARCHAR2(1);
/* definition du curseur */
CURSOR c1 IS SELECT jpb.CODCOL, jpb.CODAGT, jpb.NOMUSU, jpb.NOMPAT, jpb.PRENOM, pop.DTENAI, jpb.DEPCOL, jpb.MOTDEP
FROM pers.JPB_testNOV2009_AGENT jpb, centrale.POPULATION pop
WHERE jpb.CODPOP = pop.CODPOP
AND (jpb.CODCOL = '59350' OR jpb.CODCOL = '59450')
ORDER BY jpb.NOMPAT, jpb.PRENOM, pop.DTENAI, jpb.DEPCOL;
BEGIN
Open c1;
FETCH c1 INTO lu_codcol, lu_codagt, lu_nomusu, lu_nompat, lu_prenom, lu_dtenai, lu_depcol, lu_motdep;
co_codcol := lu_codcol;
co_codagt := lu_codagt;
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_codcol, lu_codagt, 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_codcol, lu_codagt, lu_nomusu, lu_nompat, lu_prenom, lu_dtenai, lu_depcol, lu_motdep
);
INSERT INTO ANOMALIE VALUES
(
co_codcol, co_codagt, co_nomusu, co_nompat, co_prenom, co_dtenai, co_depcol, co_motdep
);
END IF;
IF lu_depcol IS NULL THEN
ins_codcol := lu_codcol;
ins_codagt := lu_codagt;
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_codcol := lu_codcol;
ins_codagt := lu_codagt;
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
INSERT INTO UNEFOIS VALUES
(
ins_codcol, ins_codagt, ins_nomusu, ins_nompat, ins_prenom, ins_dtenai, ins_depcol, ins_motdep
);
END IF;
co_codcol := lu_codcol;
co_codagt := lu_codagt;
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; |
Partager