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

Sybase Discussion :

appel sous procedure interne dans proc principale


Sujet :

Sybase

  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2003
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 35
    Points : 31
    Points
    31
    Par défaut appel sous procedure interne dans proc principale
    Bonjour,

    j'ai un procédure stockée SQL sybase qui contient un grand nombre de ligne set notamment d'important bloc de lignes encadrées par des if:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if (@a=1)
    begin 
      - nombreuses lignes 
    end
    else if (@a=2)
    begin 
       - nombreuse lignes
    end
    Pour faciliter la relecture que pourront faire les copains ensuite, j'aurai voulu créer une fonction à l'intérieur de mon code du style

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    CREATE PROCEDURE psPrincipale
     
    PROCEDURE P_Sous_proc_appele_par_le_principale
    BEGIN
          action du style select ...
     
     
    END P_Sous_proc_appele_par_le_principale;
    J'ai essayé mais ça ne compile pas

    si qqn a une idée ça serait super (de préférence sans passer par l'appel du autre PS extérieure avec exec pour éviter de mettre des paramètre d'entrée / sortie)


    merci d'avance

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 127
    Points : 208
    Points
    208
    Par défaut
    Bonjour,

    Je ne suis pas sûr d'avoir bien compris ton problème, mais si c'est de passer les paramètres à chaque procédure qui te pose pb, tu peux utiliser des variables de session.
    Ces variables sont par exemple créés dans la proc principale et pourront être lues dans les proc secondaires comme ceci proc princpale suivie d'une secondaire :
    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
    -- exemple proc principale
    CREATE procedure psPrincipale(@argun integer,@argdeux varchar(15),@argtrois varchar(15)) AS
    BEGIN
        -- Créer des variables de session pour les paramètres à "passer" aux sous procedures
        CREATE VARIABLE @vsession_argun INTEGER;
        CREATE VARIABLE @vsession_argdeux varchar(15);
        CREATE VARIABLE @vsession_argtrois varchar(15);
     
        -- Initialiser les variables de session avec les valeurs reçues pas la proc
        SET @vsession_argun = @argun;
        SET @vsession_argdeux = @argdeux;
        SET @vsession_argtrois = @argtrois;
    	-- appel de plusieurs proc (sans passer de paramètres)
    	exec sous_proc1;
    	exec sous_proc2;
    	-- .....
    	-- suppression des variables de session (c'est facultatif s'il n'y a pas d'autres appels dans la session)
        DROP VARIABLE @vsession_argun;
        DROP VARIABLE @vsession_argdeux;
        DROP VARIABLE @vsession_argtrois;
     
    END
    et la secondaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    -- exemple de recup dans une sous proc
     CREATE procedure psSecondaire() AS
     BEGIN
       DECLARE @localun INTEGER;
      -- Tester si la variable de session existe
      IF VAREXISTS('@vsession_argun')
      THEN
        SET @localun = @vsession_argun;
      ELSE
    	SET @localun = 0 -- valeur défaut par exemple
      END IF;
      END
    Cordialement

Discussions similaires

  1. Appel de Procedure stockée dans base oracle
    Par sami117 dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 14/08/2009, 16h11
  2. Appels de procedures stockées dans une proc stockée ?
    Par Nadaa dans le forum MS SQL Server
    Réponses: 12
    Dernier message: 17/07/2008, 10h32
  3. Réponses: 2
    Dernier message: 22/06/2006, 11h26
  4. Réponses: 3
    Dernier message: 21/09/2004, 07h35
  5. Réponses: 1
    Dernier message: 04/06/2003, 11h48

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