Bloc PL/SQL pour traduire note scolaire us en note fr - SQL/NoSQL - Programmation
Marsh Posté le 17-09-2005 à 14:46:06
C'est du charabia ton code ...
Tu boucles sur ton curseur, et tu n'affiches que la meilleure note !
De plus, il faudrait que tu fasses ton DECODE dans le curseur.
Et enfin, fais les jointures nécessaires afin de récupérer toutes les infos à afficher dans le curseur.
PS: on donne juste des conseils ici, on va pas te résoudre ton exercice
Marsh Posté le 17-09-2005 à 14:52:30
Merci pour ces infos...
N'ayant jamais fais de bloc je suis un peu perdu, mais puisque c du charabia, je vais le reprendre.
Merci pour ces conseils, je n'en attendais pas moins (et je n'ai pas envie qu'on me fasse mon exercice).
Beegee a écrit : C'est du charabia ton code ... |
Marsh Posté le 17-09-2005 à 14:32:47
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