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

Langage SQL Discussion :

Exécuter le résultat d'une procédure stockée


Sujet :

Langage SQL

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2005
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Exécuter le résultat d'une procédure stockée
    Bonjour à tous,

    J'ai une procédure stockée qui renvoie une chaine (c'est une requête générée dynamiquement).

    Comment puis-je exécuter le résultat de la procédure ?

    Exemple :
    exec dbo.proc
    renvoie "select * matable"

    Je voudrais faire quelque chose comme
    exec('exec dbo.proc')
    pour avoir directement le résultat de la requête mais cela renvoie "select * matable".

    Est-ce possible ?

    Merci !
    evad

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut
    Bonjour,
    Quel est ton SGBD? Car la syntaxe dépend de celui ci. et sous quelle forme la procédure stockée "renvoie " t-elle la requète,
    -valeur de retour (dans ce cas c'est une fonction stockée
    -paramètre de sortie?
    -select??
    Neanmoins en général ce genre d'artifice n'est pas performant.
    exec dbo.proc
    renvoie "select * matable"
    J'espère que ta procédure dbo.proc renvoie
    car sinon tu n'es pas bien parti.

    Soazig

  3. #3
    Futur Membre du Club
    Inscrit en
    Avril 2005
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Je suis sous SQL Server.
    La procédure stockée renvoie une chaine de caractères du type : select * from matable.
    C'est cette chaine que je voudrais exécuter (dans un exec).

    Merci !

    evad

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut
    Rebonjour,
    Je t'ai demandé sous quelle forme
    procédure stockée "renvoie " t-elle la requète,
    -valeur de retour (dans ce cas c'est une fonction stockée
    -paramètre de sortie?
    -select??
    Et tu me réponds
    La procédure stockée renvoie une chaine de caractères du type :
    J'imagine que ta procédure stockée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CREATE PROCEDURE [dbo].[ma_proc]
    	AS
    BEGIN
    	SELECT 'select * from matable'
    END
    Et à mon sens dans ce cas tu ne pourras pas faire ce que tu veux.
    En revanche si tu utilises une variable d'output tu pourras récupérer ton bonheur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CREATE PROCEDURE [dbo].[ma_proc]
    @mon_sql varchar(5000) output
    	AS
    BEGIN
    	SET @mon_sql='select * from matable'
    END
    l'appel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    declare @mon_sql1 varchar(5000)
    exec [dbo].[ma_proc] @mon_sql1 output
    --Là tu as ta chaine à executer
    EXECUTE sp_executesql @mon_sql1
    Mais attention au temps de réponses, ça risque de ramer car comme c'est du sql dynamique il ne peut pas y avoir de stockage du plan d'execution, ton exemple ne justifie pas l'utilisation d'une telle usine à gaz.
    PS: J'ai presque tout coder de mémoire, donc vérifie la syntaxe dans msdn.
    A+
    Soazig

  5. #5
    Futur Membre du Club
    Inscrit en
    Avril 2005
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    declare @mon_sql1 varchar(5000)
    exec [dbo].[ma_proc] @mon_sql1 output
    --Là tu as ta chaine à executer
    EXECUTE sp_executesql @mon_sql1
    C'est ce que je cherchais. Merci !

    evad

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

Discussions similaires

  1. SELECT sur le résultat d'une procédure stockée
    Par sorcer1 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 28/09/2007, 13h28
  2. Récupérer le résultat d'une procédure stockée
    Par DanZzz dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 28/11/2006, 22h08
  3. Problème de récup de résultats d'une procédure stockée
    Par an_merle dans le forum SQL Procédural
    Réponses: 6
    Dernier message: 12/01/2006, 10h08
  4. [SQL Server]Recupération du résultat d'une procédure stockée
    Par navis84 dans le forum Bases de données
    Réponses: 8
    Dernier message: 04/04/2005, 20h53
  5. [C#] Récupérer le résultat d'une procédure stockée
    Par fabrice1596 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 18/10/2004, 13h45

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