IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PL/SQL Oracle Discussion :

probleme de package/procedure


Sujet :

PL/SQL Oracle

  1. #1
    Invité
    Invité(e)
    Par défaut probleme de package/procedure
    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...

  2. #2
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 62
    Par défaut les guillemets
    Salut, essaye d'enlever les guillemets du nom de tes procédures dans le package étant donné que dans le body tu ne les a pas mis.

    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é.
    Un package en théorie à quoi ça sert ? à regrouper des procédures fonctions et autres qui en général traitent la même information. Bon c'est le côté "pratique" mais il y a aussi l'aspect "encapsulation" qui va t'apporter la notion de procédure public ou privée donc un élément de sécurité important.

  3. #3
    Invité
    Invité(e)
    Par défaut
    merci beaucoup
    ca serait indescent de te dire combien de temps j'ai cherché mon erreur sans même regarder les guillemets... Oracle renvoyait des erreurs qui ne m'inspirait pas trop!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. probleme avec ma procedure
    Par Sardonnen dans le forum Oracle
    Réponses: 4
    Dernier message: 07/10/2005, 17h26
  2. [Debutant(e)]probleme default package
    Par la_ruine dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 01/08/2005, 14h45
  3. [Microsoft MV][applet]probleme de package
    Par mabs dans le forum Applets
    Réponses: 8
    Dernier message: 09/06/2005, 12h51
  4. Probleme dans une procedure stockée
    Par malbaladejo dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 07/07/2004, 14h08
  5. [C#] [Oracle] Probleme avec une procedure stockée
    Par sronin1 dans le forum Accès aux données
    Réponses: 4
    Dernier message: 28/05/2004, 19h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo