Bonjour à tous,
Etant nouveau dans le domaine de la programmation PL/SQL, j'aurais besoin de vos lumières.

Voici mon code :

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
25
26
27
CREATE OR REPLACE FUNCTION moyenneEtudiantModule(p_etudiant IN Etudiants.idEtudiant%TYPE, p_idModule IN Modules.idModule%TYPE) RETURN NUMBER
IS
moyenne NUMBER;
moyenne_note NUMBER;
moyenne_coefficient NUMBER;
 
BEGIN 
DBMS_OUTPUT.ENABLE;
 
FOR m IN(SELECT Ma.coefficientMatiere,N.note INTO moyenne_coefficient, moyenne_note
FROM Modules M, Matieres Ma, Etudiants E, Notes N
WHERE M.idModule = Ma.idModule
AND Ma.idMatiere = N.idMatiere
AND N.idEtudiant = E.idEtudiant
AND E.idEtudiant = p_etudiant
AND M.idModule = p_idModule)
 
LOOP
 
moyenne := moyenne + (moyenne_coefficient*moyenne_note);
 
END LOOP;
 
moyenne := moyenne / moyenne_coefficient;
RETURN (moyenne);
 
END;

Ensuite j'exécute ma fonction :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
SELECT moyenneEtudiantModule('E6', 'M112')
FROM DUAL;
Mais la, rien ne se produit.
Normalement la moyenne devrait s'afficher, mais rien ne se passe. Ma requête SQL m'affiche bien 2 colonnes avec les notes des matières et leurs coefficients donc je ne vois pas d'où peut venir le problème.

Merci d'avance.