Bonjour voila j'ai une table BILAN qui contient différente matiere avec des eleves j'aimerai faire un pivot pour avoir un resultat qui ressemble à çà :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
NOM  MATIERE1  MATIERE2  ETC..
ELEVE1   12            13
ELEVE2   14            11
Voici ma procédure stockée pour le moment :

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 PROCEDURE pivotBilan AS
v_matiere VARCHAR2(25);
v_req_deb VARCHAR2(50);
v_req_fin VARCHAR(50);
v_req VARCHAR2(300);
v_req_final VARCHAR(500);
v_long NUMBER;
CURSOR monCurseur IS SELECT DISTINCT matiere FROM BILAN ORDER BY matiere
BEGIN
	OPEN monCurseur;
	v_long:=0;
	v_req_deb := 'SELECT nom,';
	v_req_fin := 'FROM bilan GROUP BY nom';
	FETCH monCurseur INTO v_matiere;
	WHILE(monCurseur%FOUND)
	LOOP
		v_req:= CONCAT(v_req, "max(decode(matiere,'"v_matiere"',moyenne)),");
		FETCH monCurseur INTO v_matiere;
	END LOOP;
	CLOSE monCurseur;
	v_long:=LENGTH(v_req);
	v_req:=SUBSTR(v_req,v_long-1,0);
	v_req_final := v_req_deb || v_req || v_req_fin;
	EXECUTE IMMEDIATE v_req_final;
END;
/

çà me retourne l'erreur suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
ERREUR à la ligne 13 : PLS-00103: Symbole "=" rencontré à la place d'un des symboles suivants :
 
   constant exception 
    table LONG_ double ref char
   time timestamp interval date binary national character nchar
la ligne 13 est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
v_req_fin := 'FROM bilan GROUP BY nom';
Je vous remercie par avance pour votre aide !