0% ont trouvé ce document utile (0 vote)
48 vues1 page

Correction

Le document présente quatre solutions de code PL/SQL. La première insère des données sur un vol, la deuxième calcule le reste d'une division, la troisième calcule la moyenne des salaires des pilotes âgés de 30 à 40 ans, et la quatrième affiche les scores des participants d'une compétition. Chaque solution utilise des structures de contrôle et des curseurs pour manipuler les données.

Transféré par

sindasahmima
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
48 vues1 page

Correction

Le document présente quatre solutions de code PL/SQL. La première insère des données sur un vol, la deuxième calcule le reste d'une division, la troisième calcule la moyenne des salaires des pilotes âgés de 30 à 40 ans, et la quatrième affiche les scores des participants d'une compétition. Chaque solution utilise des structures de contrôle et des curseurs pour manipuler les données.

Transféré par

sindasahmima
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

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

Vous aimerez peut-être aussi