Bonjour,
Ce que je veux c'est que la liste ci-dessous est affiché
Étudiant: Vincent Gaudet, cours: 420-PK1-SL, résultat: 48
Étudiant: Vincent Gaudet, cours: 201-GNB-SL, résultat: 85,5
Étudiant: Etienne Lalonde, cours: 201-GNB-SL, résultat: 85,5
Étudiant: Etienne Lalonde, cours: 420-PK1-SL, résultat: 86
Étudiant: Robert Leroux, cours: 201-GNB-SL, résultat: 95
Étudiant: Robert Leroux , cours: 420-PK1-SL, résultat: 97,9
Étudiant: Josée Neuwahl, cours: 420-PK1-SL, résultat: 91,25
Étudiant: Josée Neuwahl, cours: 201-GNB-SL, résultat: 86
par une procedure PL/SQL mais avec des étoiles par rapport aux chiffres (60-69,9: *, 70-79,9 ** etc)
J'ai fait ça (J'ai utilisé 5000 pour l'étoile pour avoir la possibilité de voir le mauvais boucle mais normalement 5 étoiles pour 100% serait suffisant):
Mais ça ne donne pas le boucle que j'ai prévu (ici le dernier résultat comme exemple):
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 CREATE OR REPLACE PROCEDURE Resultats BEGIN OPEN c1; LOOP FETCH c1 INTO v_prenom, v_nom, v_cours, v_noteFinal; EXIT WHEN c1%NOTFOUND OR c1%NOTFOUND IS NULL; IF (v_noteFinal-60) <= 0 THEN etoile:='-'; ELSE i:=0; WHILE v_noteFinal>=60 LOOP v_noteFinal:=v_noteFinal-10; etoile:=etoile || '*'; END LOOP; END IF; DBMS_OUTPUT.PUT_LINE('Étudiant(e): ' || v_prenom || ' ' || v_nom || ', Cours: ' || v_cours || ', Résultat: ' || etoile); END LOOP; CLOSE c1; END; / Procedure created.
Étudiant(e): Josée Neuwahl, Cours: 201-GNB-SL, Résultat:
-*******************************************************************************
********************************************************************************
********************************************************************************
********************************************************************************
********************************************************************************
********************************************************************************
********************************************************************************
********************************************************************************
*******************************************************************
(707 étoiles)
C'est un erreur de logique mais si quelqu'un me puisse aider s'il vous plaît ???
Merci beaucoup
Partager