Bonsoir, je débute sous pl/sql, on avance en cours à une sacrée vitesse et j'avoue avoir du mal a suivre certains principes malgré bcp d'heure passé le soir chez moi...

Pourriez vous m'éclaircir les idées et m'aider?

Voila dans un projet, je crée 4 procédures stockées qui possèdent des paramètre en entree et 1 paramètre en sortie, ce parametre de sortie est un tableau défini dans un package, il est commun a certaines de mes procédures...

les 4 requetes sont compilées et fonctionnent indépendamment.
J'aimerai réunir ces 4 procédures sous un seul package, je crois que c possible (package body si je ne me trompe pas). J'en ai d'ailleurs pas bien saisi l'intérêt mais le prof en a parlé donc bon... au moins par curiosité.

J'ai beau chercher sur le net la syntaxe, le package body est truffé d'erreur...
voila une de mes procédures:
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
create or replace
PROCEDURE   "NBGROUPE_RENC" (NombreGroupe in integer, resultat out NUMERIC_STR.T2) as  /*numeric_str.t2 est une table T2 defini ds le package 
 NUMERIC_STR composé de 2 colonnes number et varchar*/
 
  i integer:=1;
 
  cursor c2 is select nb_Groupe,nomrencontre from
                    ( select nomrencontre, nb_Groupe from 
                                    ( select count(distinct produire.nogroup)
                                      as nb_Groupe, produire.norencontre 
                                      from produire group by produire.norencontre
                                    )Gre
                           join rencontre on rencontre.norencontre=Gre.norencontre
                     )
                     where nb_Groupe=NombreGroupe;  
 
begin
  for Vc2 in c2 loop
          resultat(i):=Vc2;
          i:=i+1;
          dbms_output.put_line('nb groupes  : '||Vc2.nb_Groupe||' a la rencontre   '||Vc2.nomrencontre);
  end loop;
end;
Les autres procédures sont du même type, elles fonctionnent bien aussi, j'ai créé un premier package de cette forme qui est compilé
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
create or replace
PACKAGE essai aS
  	  	PROCEDURE GROUPE_TITRE(ptitre varchar2, resultat out  PACK_SPERENC2.T2 );
        PROCEDURE            "NBGROUPE_RENC" (NombreGroupe  integer, resultat out NUMERIC_STR.T2);
        PROCEDURE            "P1" (Pnomrencontre varchar2, resultat out NUMERIC_STR.T2);
        PROCEDURE            "SPE_RENC" (PNomRenc  varchar2, PSpe  varchar2, resultat  out PACK_SPERENC.T2 );
        PROCEDURE            "TITRE_RENC" (Ptitre varchar2, resultat  out PACK_SPERENC2.T2);
        FUNCTION FDATE (Pdate timestamp) RETURN varchar2;
 
 
end essai;
mais le package body ne marche pas, je ne comprend pas comment le structurer...
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
create or replace
PACKAGE BODY essai aS
 
 
PROCEDURE    GROUPE_TITRE (ptitre in varchar2, resultat out PACK_SPERENC2.T2  )  is
 
cursor C4 is select nomsong, nomgroupe from (
/*--------------------------------etc-----------------------------------*/
END GROUPE_TITRE;
 
 
PROCEDURE   NBGROUPE_RENC (NombreGroupe  integer, resultat  NUMERIC_STR.T2) as
 
 
  i integer:=1;
/*--------------------------------etc-----------------------------------*/
Merci pour vos explications!
Parmis les erreurs retournées, il ne semble pas accepté mes paramètres...