PL SQL - trop de boucles dans les étoiles
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):
Code:
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. |
Mais ça ne donne pas le boucle que j'ai prévu (ici le dernier résultat comme exemple):
É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