Bonjour,
Je dois écrire un bloc PL/SQL permettant de faire correspondre la notation américaine (A, B, C
) avec une notation française (nombre compris entre 0 et 20). Le bloc permettra dafficher les notes « françaises » de tous les étudiants.Les notes sont les suivantes:
A+ 20 A 19 A- 18 B+ 16,5 B 15 B- 13,5 C+ 12 C 10,5 C- 9
D+ 7,5 D 6 D- 4,5 F+ 3 F 1,5 F- 0
Voici ce que j'ai écrit, mes ca ne marche pas... vu que l'exo doit etre rendu assez rapidement, si quelqu'un de bonne volonté pouvait me donner un coup de main, ca serait sympa.
SET SERVEROUTPUT ON
DECLARE
note_us VARCHAR2(4) ;
note_fr VARCHAR2(4) ;
Affiche_note_usfr VARCHAR2(30);
Affichenom VARCHAR2(30);
Afficheprenom VARCHAR2(30);
Afficheuv VARCHAR2(30);
CURSOR cr_note IS
SELECT note
FROM Etudiant_cours
ORDER BY note;
BEGIN
OPEN cr_note;
LOOP
FETCH cr_note
INTO note;
EXIT WHEN cr_note%NOTFOUND;
Affiche_note_usfr := ''|| DECODE(note,'A+','20','A','19','A-','18','B+','16,5','B','15','B-','13,5','C+','12','C','10,5','C-','9','D+','7,5','D','6','D-','4,5','F+','3','F','1,5','F-','0')
= WHERE ETUDIANT_CODE = ( SELECT ETUDIANT_CODE FROM ETUDIANT
WHERE nom = 'ANASTATIA')||'';
Affichenom := ''||(SELECT nom FROM etudiant WHERE nom = 'ANASTATIA')|| '';
Afficheprenom := ''||(SELECT prenom FROM etudiant WHERE prenom = 'ANNA')|| '';
Afficheuv := ''||(SELECT nom FROM etudiant WHERE nom = 'ANASTATIA')|| '';
dbms_output.put_line ( Affichenom ||' '|| Afficheprenom ||' '|| Affiche_note_usfr || Afficheuv);
END LOOP;
CLOSE cr_note;
END;
/
Merci