Précédent   Forum des professionnels en informatique > Bases de données > Oracle > PL/SQL
PL/SQL Forum d'entraide sur le PL/SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/06/2011, 19h20   #1
Invité de passage
 
Homme Nicolas Garschi
Étudiant
Inscription : juin 2011
Messages : 1
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Garschi

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Matériel informatique

Informations forums :
Inscription : juin 2011
Messages : 1
Points : 0
Points : 0
Par défaut Problème d'affichage d'un attribut sur jointure

Salut à tous!

Je vous explique mon souci. Il est que je n'arrive pas a afficher le nom de la matière (MATIERE.MatNom) correspondant au numéro d'examen (EXAMEN.ExaMatNum) dans une boucle imbriquée d'un curseur ayant reçu en paramètre un numéro d'élève.
J'aimerais que la ligne de code affichant la matière correspondant à l'examen s'introduise entre la ligne 71 et 72.

Je sais pas si j'ai été suffisamment claire. Merci d'avance pour votre aide.

Et au passage... a-t-il été vraiment nécessaire que je crée un curseur pour le parcours des élèves?

Code sql :
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
CREATE OR REPLACE PROCEDURE AfficherMentions AS
/*-------------------------------------------------------------------
Script : AfficherMentions.prc
Auteur : G***
Année  : ESIG1 2010-2011
Date   : 23.06.2011
Projet : Université Rotshield (BDD Phase II)
---------------------------------------------------------------------
-- Affiche le nombre d'élèves
-- Affiche les notes que possèdent chaques élèves
-- Affiche la moyenne de l'élève
-- Affiche la situation de l'élève
-- Affiche le nombre d'élèves promus
-- Affiche le nombre d'élèves non-promus
-- Affiche le nombre d'élèves promus avec mention "TRES BIEN"
-- Affiche le nombre d'élèves promus avec mention "BIEN"
-------------------------------------------------------------------*/
 
-- Déclaration des curseurs
	CURSOR cuEleve IS
		 SELECT * FROM ELEVE e
                 ORDER BY         e.ElvNom;
 
  CURSOR cuExamen(pNumEleve IN EXAMEN.ExaElvNum%TYPE) IS
                 SELECT * FROM EXAMEN
                 WHERE             ExaElvNum = pNumEleve;      
 
-- Déclaration des variables
  vEleve          cuEleve%ROWTYPE;
  vExamen       cuExamen%ROWTYPE;
  vPosExamen  INTEGER;
  vNbEleves     INTEGER;
 
-- Déclaration des exceptions
	eAucunEleve      EXCEPTION;
	eAucunExamen   EXCEPTION;
 
BEGIN
  vNbEleves := 0;
  OPEN cuEleve;
  FETCH cuEleve INTO vEleve;
  IF cuEleve%NOTFOUND THEN RAISE eAucunEleve;
  END IF;
  dbms_output.put('                    UNIVERSITE ROTSHIELD GENEVE');
	dbms_output.new_line;
  dbms_output.put('-----------------------------------------------------------------------');
	dbms_output.new_line;
	dbms_output.put('INFORMATIONS RELATIVES AUX EXAMENS ET A LA SITUATION DE CHAQUES ELEVES:');
	dbms_output.new_line;
  dbms_output.put('-----------------------------------------------------------------------');
	dbms_output.new_line;
  WHILE cuEleve%FOUND LOOP
    vPosExamen := 0;
    vNbEleves := vNbEleves + 1;
    dbms_output.put('PRENOM: ');
    dbms_output.put(vEleve.ElvPrenom);
    dbms_output.new_line;
    dbms_output.put('NOM:    ');
    dbms_output.put(vEleve.ElvNom);
    dbms_output.new_line;
    dbms_output.new_line;
    dbms_output.put('Examens de l élève:');
    dbms_output.new_line;
    OPEN cuExamen(vEleve.ElvNum);
    FETCH cuExamen INTO vExamen;
    IF cuExamen%NOTFOUND THEN RAISE eAucunExamen;
    END IF;
    WHILE cuExamen%FOUND LOOP
      vPosExamen := vPosExamen + 1;
      dbms_output.put(vPosExamen);
      dbms_output.put('. ');
      dbms_output.put(vExamen.ExaNoteObt); 
      dbms_output.new_line;
      FETCH cuExamen INTO vExamen; 
    END LOOP;
      dbms_output.put('-----------------------------------------------------------------------');
      dbms_output.new_line;
    CLOSE cuExamen;    
    FETCH cuEleve INTO vEleve;
  END LOOP;
  CLOSE cuEleve;
  dbms_output.put('--------------------------');
  dbms_output.new_line;
  dbms_output.put('NOMBRE TOTAL D ELEVES: ');
  dbms_output.put(vNbEleves);
  dbms_output.new_line;
  dbms_output.put('--------------------------');
  dbms_output.new_line;
  EXCEPTION
    WHEN eAucunEleve THEN
      dbms_output.new_line;
      dbms_output.put_line('Aucun Eleve !');
    WHEN eAucunExamen THEN
      dbms_output.new_line;
      dbms_output.put_line('Aucun Examen !');
  END AfficherMentions;
GVAcoder est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2011, 13h52   #2
Membre du Club
 
Inscription : décembre 2010
Messages : 190
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 190
Points : 60
Points : 60
bonjour,

tu voudrais bien nous dire le résultat de ta procédure?
AbouZaid est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h45.


 
 
 
 
Partenaires

Hébergement Web