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
| CREATE OR REPLACE PROCEDURE Archivage
IS
Date DATES%RowType DEFAULT SysDate;
CURSOR Cu_Resident is (select * from Bateau B, Occuper O where B.NumB = O.NumB);
CURSOR Cu_Stationnement is (select * from Stationner);
order_dym varchar2(300);
BEGIN
FOR S IN Cu_Stationnement
LOOP
IF((S.DUREE_S+to_char(S.VALEUR,'mm'))>to_char(Date, 'mm')) THEN
order_dym := 'INSERT INTO Ar_Stationnement (Valeur, Bassin, Ponton, Num_Emp, NumB, Duree_S)
-- VALUES (' || S.Valeur || ',' || S.Bassin || ',' || S.Ponton || ',' || S.Num_Emp ||',' || S.NumB || ',' || S.Duree_S || ')';
EXECUTE IMMEDIATE order_dym;
order_dym := 'DELETE FROM Stationner WHERE Valeur=' || S.Valeur || ' and Bassin=' || S.Bassin || ' and Ponton=' || S.Ponton || '
and Num_Emp=' || S.Num_Emp;
EXECUTE IMMEDIATE order_dym;
END IF;
END LOOP;
FOR R IN Cu_Resident
LOOP
IF((R.DUREE_O+to_char(R.Valeur,'mm'))>to_char(Date,'mm')) THEN
order_dym := 'INSERT INTO Ar_Resident (NumB, Nom)
VALUES (' || R.NumB || ',' || R.Nom || ')';
EXECUTE IMMEDIATE order_dym;
order_dym := 'DELETE FROM Bateau WHERE ' || R.NumB || '=NumbB and ' || R.Nom || '=Nom';
EXECUTE IMMEDIATE order_dym;
END IF;
END LOOP;
END;
/ |
Partager