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

DB2 Discussion :

FOR LOOP avec curseur


Sujet :

DB2

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Janvier 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 2
    Par défaut FOR LOOP avec curseur
    Comment on peut créer un curseur dynamique et faire un LOOP dans les enregistrements du curseur pour faire un INSERT

    ex:
    ------------------------------------------------
    ------------------------------------------------
    ------------------------------------------------
    DECLARE STMT VARCHAR(1024);
    DECLARE MESG TIMESTAMP;

    SET STMT = ' SELECT MESSAGE_TIME
    FROM ''CONTROL_''|| p_nom_trace
    WHERE message = ''EVMON_START''';

    -- PREPARE S1 FROM STMT;

    P2: BEGIN
    DECLARE CUR1 CURSOR FOR STMT;
    OPEN CUR1;
    LOOP
    FETCH CUR1 INTO mesg;

    INSERT INTO PIR901_F_EVEN_AFFA
    VALUES(NEXTVAL FOR NO_SEQ_PIR901,
    'NO_EVEN',
    mesg,
    0,
    0,
    PREVVAL FOR NO_SEQ_PIR900,
    0);
    END LOOP;
    CLOSE CUR1;

    END P2;
    ------------------------------------------------
    ------------------------------------------------
    ------------------------------------------------

    Dans le curseur, le nom de la table est dynamique et j'aimerais pouvoir faire un LOOP et sortir de la LOOP automatiquement après la fin du curseur


    Merci

    Ben

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 298
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    DECLARE ...;
    OPEN ...;
    fetch_loop:   -- Nom de ma boucle
    LOOP
    FETCH ...;
    INSERT INTO ...;
    END LOOP fetch_loop;
    CLOSE ...;
    Et pour quitter la boucle avant la fin du curseur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    FETCH ...;
    IF ... THEN
    LEAVE fetch_loop;
    END IF;

Discussions similaires

  1. Problème avec boucle for/loop.
    Par Reivilo35 dans le forum PL/SQL
    Réponses: 4
    Dernier message: 11/01/2011, 09h01
  2. problème avec curseur "for update"
    Par funkyjul dans le forum Développement
    Réponses: 3
    Dernier message: 21/01/2009, 11h55
  3. xsl:for-each avec un parametre pour select
    Par arnog dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 26/08/2008, 13h09
  4. [vb.net] For Each .. avec condition
    Par arnolem dans le forum Windows Forms
    Réponses: 8
    Dernier message: 07/12/2005, 09h18
  5. Erreur "For loop variable simple local varaible"
    Par Yepazix dans le forum Langage
    Réponses: 13
    Dernier message: 17/09/2005, 22h09

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