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

SQL Firebird Discussion :

Requête SELECT + Procédure


Sujet :

SQL Firebird

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de ghost942
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 112
    Par défaut Requête SELECT + Procédure
    Bonjour,

    Dans ma base, j'ai differentes procédures stockées que j'utilise de manière individuelle. Mais la, j'ai besoin d'appliquer ces procédures sur un ensemble de données et je me heurte à un petit soucis. J'ai trouvé un paliatif en attendant, mais cela est très lourd.

    Soit par exemple, ma procédure MyProc qui recoit en entrée trois paramètres (input0,input1,input2) et qui sort trois valeurs (output0,output1,output2)

    Si je fais un joli SELECT * FROM MyProc(input0,input1,input2); j'aurais en retour la liste de mes valeurs de sortie.

    Par contre, si j'inclus cette requete dans un autre SELECT, ca coince:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT input0,input1,input2,(SELECT * FROM MyProc(input0,input1,input2)) FROM table
    Et si je décompose, ca passe mais du coup, je me retrouve a appeler plusieurs fois la procédure:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT input0,input1,input2,
    (SELECT output0 FROM MyProc(input0,input1,input2)),
    (SELECT output1 FROM MyProc(input0,input1,input2));
    (SELECT output2 FROM MyProc(input0,input1,input2))
    FROM table,

    Est ce qu'il n'y a pas un moyen plus simple pour se faire?

  2. #2
    Membre très actif Avatar de TryExceptEnd
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    501
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 501
    Par défaut
    Quelque chose comme ceci ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT T.input0,T.input1,T.input2,M.output0,M.output1,M.output2
    FROM myTABLE T
     LEFT JOIN MyProc(T.input0,T.input1,T.input2) M
     ON (1=1)

  3. #3
    Membre confirmé Avatar de ghost942
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 112
    Par défaut
    Super! Ca marche nickel!

    Ca va alleger considérablement le temps de réponse (vu que c'est une base assez fournie ~80Mo)

    Merci!!!!!

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

Discussions similaires

  1. Appeler procédure stockée dans requête SELECT
    Par stever50 dans le forum Développement
    Réponses: 2
    Dernier message: 11/05/2010, 14h09
  2. Résultat commençant par un chiffre avec requête SELECT
    Par nicolas.pissard dans le forum Requêtes
    Réponses: 4
    Dernier message: 02/04/2010, 13h31
  3. Insertion multiple à base de sous requête SELECT
    Par drinkmilk dans le forum Langage SQL
    Réponses: 8
    Dernier message: 14/04/2005, 16h34
  4. SQL Server 7.0 - Requête Select
    Par sangokus dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 23/03/2004, 10h32
  5. Optimisations mysql sur les requêtes SELECT: index
    Par leo'z dans le forum Débuter
    Réponses: 2
    Dernier message: 29/11/2003, 13h23

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