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 :

[T-SQL] Boucle sur les resultats d'un SELECT sans CURSOR


Sujet :

Sybase

  1. #1
    Membre émérite
    Avatar de la drogue c'est mal
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    2 253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 2 253
    Points : 2 747
    Points
    2 747
    Par défaut [T-SQL] Boucle sur les resultats d'un SELECT sans CURSOR
    bonjour,

    dans une procédure stockée, je dois lancer un programme externe via EXEC avec des paramètres contenu dans une table. La commande doit etre lancer autant de fois qu'il y a de ligne de paramètre.

    En gros, j'ai ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    declare @param
    SELECT @param = param FROM table_param
    Exec toto @param
    je voudrais exécuter ca autant de fois que de ligne retourner par le SELECT.

    Et pour courronner le tout (sinon ca serait trop facile), ca doit se faire sans cursor

    une idée parce que la je seche...
    il y a du linge sur la corde à linge

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 307
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 307
    Points : 1 828
    Points
    1 828
    Par défaut
    Pourquoi sans curseur???

    Enfin, si il faut, il faut:

    1er cas - la table table_param a une clé primaire unique (ce qui est à espérer!)

    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
     
    declare @param <type>, @pk <type>
     
    set rowcount 1
    select @param = param, @pk = pk from table_param order by pk
    set rowcount 0
     
    while @param is not null
    begin
        exec ma_proc @param
     
        set rowcount 1
        select @param = param, @pk = pk from table_param where pk > @pk
                 order by pk
        set rowcount 0
    end
    Si la table table_param n'a pas de clé unique, on peut la simuler:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select param, pk = identity(5) into #param from table_param
    puis procéder comme avant pour la boucle WHILE.

    Michael
    Michael Peppler
    Membre de TeamSybase - www.teamsybase.com

    "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson

Discussions similaires

  1. [2008R2] Procédure stockée avec une boucle sur les resultat
    Par sak_ura dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 26/02/2013, 09h23
  2. [Débutant] Comment utiliser les requete SQL est afficher les resultat sur Gridview
    Par likoo_01 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 15/04/2012, 10h49
  3. Réponses: 6
    Dernier message: 31/03/2006, 17h05
  4. Macro sur Excel/Boucle sur les lettres
    Par life is magic dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 25/11/2005, 11h56
  5. [SQL]Questions sur les contraintes ?
    Par patmaba dans le forum Oracle
    Réponses: 3
    Dernier message: 24/02/2005, 15h12

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