Bonjour tout le monde ,

Aujourd'hui on a effectué un test gestion de base de données et je me suis planté dans une procédure très complexe si quelqu'un peut m'aider a résoudre ce problème : on doit écrire une procédure quand doit l'appeler plus tard dans un programme VB.net et pour cela on a la base suivante :
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
 
drop table participer;
drop table marquer_but;
drop table matchs;
drop table joueur;
drop table classement;
drop table equipe;
 
 
create table equipe (nom_equipe varchar2(254) primary key,ville varchar2(254));
 
create table joueur(num_joueur number primary key ,nom_joueur varchar2(254),nationalite varchar2(254) ,nom_equipe varchar2(254)				
					, constraint fk5 foreign key (nom_equipe)references equipe);
 
 
 
 
create table matchs(id_match number primary key,num_journee number,date_match date,sl number,sv number,el varchar2(254),ev varchar2(254)  
						 ,constraint fk6 foreign key (ev)references equipe(nom_equipe),
						  constraint fk7 foreign key (el)references equipe(nom_equipe));
 
 
 
 
 
 
 
create table participer (id_match number,num_joueur number,minute_debut number ,minute_fin number,
						constraint pk1 primary key ( id_match,num_joueur),
						constraint fk12 foreign key (id_match)references matchs(id_match),
						constraint fk17 foreign key (num_joueur)references joueur(num_joueur));	
 
 
 
 
create table marquer_but(id_match number,num_joueur number,minute_but number,
						 primary key (id_match,minute_but,num_joueur),
						 constraint fk13 foreign key (id_match)references matchs(id_match),
						 constraint fk11 foreign key (num_joueur)references joueur(num_joueur));
 
 
 
 
create table classement(nom_equipe varchar2(254) primary key,totalpoint number,rang number,
			            constraint fk18 foreign key (nom_equipe)references equipe(nom_equipe));
et on doit faire un Package dans le quel on doit créer une procédure que nous retourne le classement d'une journée envoyer comme paramètre pour moi voici ce que j'ai fait :

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
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
 
CREATE OR REPLACE PACKAGE curspkg_join AS 
        TYPE t_cursor IS REF CURSOR ; 
        Procedure classement (v_num_journee IN NUMBER, io_cursor IN OUT t_cursor); 	
   END curspkg_join;
   /
  CREATE OR REPLACE PACKAGE BODY curspkg_join AS 
 
Procedure classement (v_num_journee IN NUMBER, io_cursor IN OUT t_cursor) 
   IS 
 v_cursor t_cursor;  
 
 cursor c_equipe is select * from equipe;
 cursor c_Match(v_nomeq equipe.nom_equipe%type) is select * from matchs where v_nomeq=el or v_nomeq=ev and v_num_journee = num_journee;
 cursor c_classement is select * from classement;
 
 v_point number;
 v_rang number;
 v_mem number;
i integer;
v_rang_precedent number;
begin
 
     OPEN v_cursor FOR 
		v_rang:=0;
		v_mem:=0;
		i:=1;
 
 for v_equipe in c_equipe
	loop
		v_point:=0;		
		for v_matchs in c_Match(v_equipe.nom_equipe)
			loop
				if(v_matchs.el=v_equipe.nom_equipe)then
					if(v_matchs.sl > v_matchs.sv)then
						v_point:=v_point+3;
					elsif(v_matchs.sl = v_matchs.sv)then
						v_point:=v_point+1;
					end if;
 
				elsif(v_matchs.ev=v_equipe.nom_equipe)then
				if(v_matchs.sl < v_matchs.sv)then
						v_point:=v_point+3;
					elsif(v_matchs.sl = v_matchs.sv)then
					v_point:=v_point+1;
					end if;	
 
				end if;
			for v_classement in c_classement
				loop
					v_rang:=i;
					if v_classement.totalpoint =v_mem then
						v_rang:=v_rang_precedent;
					end if;
						v_mem:=v_classement.totalpoint;
						i:=i+1;
						v_rang_precedent:=v_rang;
				end loop;
 
			end loop;
	end loop;
	io_cursor := v_cursor; 
end classement;
 END curspkg_join;
/
malheureusement il crée le Package mais il me retourne une erreur dans la procédure que je l'ai pas trouvé!!!!!!!!!!