Solution1 : DECLARE v vol%ROWTYPE;
BEGIN [Link] := 'AF110'; v.heure_départ := to_date('21/11/2013 21:40', 'DD/MM/YYYY
hh24:mi'); v.heure_arrivée := to_date('21/11/2013 23:10', 'DD/MM/YYYY hh24:mi');
v.ville_départ := 'Paris';
v.ville_arrivée := 'Dublin';
INSERT INTO vol VALUES v; END;
Solution2 : DECLARE reste NUMBER = 17664 ;
BEGIN WHILE reste > 171 LOOP reste .= reste – 171 ;
END LOOP
DBMS_OUTPUT.PUT_LINE('Le reste de 17664 par 171 est ' || reste)
END
Solution3 :
DECLARE CURSOR curseur1 IS SELECT salaire FROM pilote WHERE (Age >= 30 AND Age <=40);
salairePilote [Link]%TYPE;
sommeSalaires NUMBER(11,2) := 0;
moyenneSalaires NUMBER(11,2);
BEGIN OPEN curseur1; LOOP FETCH curseur1 INTO salairePilote; EXIT WHEN (curseur1%
NOTFOUND OR curseur1%NOTFOUND IS NULL); sommeSalaires := sommeSalaires +
salairePilote;
END LOOP;
moyenneSalaires := sommeSalaires / curseur1%ROWCOUNT; CLOSE curseur1;
DBMS_OUTPUT.PUT_LINE('Moyenne salaires (pilotes de 30 40 ans) : ' || moyenneSalaires);
END;
Solution 4 : ACCEPT cnom 'Nom de la compétition : ';
DECLARE NOMC VARCHAR2(10) := cnom;
CURSOR C(PNOM COMPETITION.NOM_COMP%TYPE)IS SELECT NOM_PART, SUM(NOTE) AS
TOTAL FROM COMPETITION C, PARTICIPANT P, SCORE S WHERE C.CODE_COMP =
S.CODE_COMP AND S.NO_PART = P.NO_PART AND C.NOM_COMP = PNOM GROUP BY
NOM_PART;
BEGIN FOR I IN C(NOMC) LOOP DBMS_OUTPUT.PUT_LINE(I.NOM_PART || ' ' || [Link])
END LOOP END