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

 PostgreSQL Discussion :

Sortir d'une boucle


Sujet :

PostgreSQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Mars 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 2
    Par défaut Sortir d'une boucle
    Bonjour,

    Je cherche à sortir d'une boucle créée "explicitement". J'ai tout d'abord utilisé la commande "EXIT WHEN NOT FOUND", le problème est que j'ai besoin d'utiliser d'autres instructions DML dans la boucle en question et la variable FOUND est relative à la dernière utilisée... Impossible de sortir de cette boucle.

    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
     
    declare
      c_1 cursor is
        select annee, mois
        from produits;
      v_1 record;
     
    begin
      open c_1;
      loop
        fetch c_1 into v_1;
        insert into log values ('blabla');
        exit when not found;
      end loop;
    end;
    Des idées ?

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Par défaut
    not found est juste un booléen.
    Il suffit de le sauver dans une variable de type boolean et de le tester plus tard.

  3. #3
    Nouveau candidat au Club
    Inscrit en
    Mars 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 2
    Par défaut
    Oui..., je me rends compte que je me suis mal exprimé. En fait je cherche l'équivalent ORACLE de la commande "exit when monCurseur%notfound" sans avoir à déplacer cette commande juste après avoir exécuté le fetch...

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 90
    Par défaut
    J'ai peut être mal compris mais as tu essayé de le mettre juste après ton fetch ?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    begin
      open c_1;
      loop
        fetch c_1 INTO v_1;
       exit when NOT found;
        INSERT INTO log VALUES ('blabla'); 
      end loop;
    end;
    edit: je viens de lire que tu avais besoin de le tester qu'après.
    Donc comme l'a dit estofilo, pourquoi tu ne fais pas soit tu la stockes dans une variable temporaire et tu la testes après, soit un IF FOUND THEN et dans ces cas là tu effectues tous les tests que tu desires et à la fin THEN EXIT END IF; pour te permettre de sortir de ta boucle.

Discussions similaires

  1. Sortir d'une boucle for
    Par gids01 dans le forum Langage
    Réponses: 9
    Dernier message: 14/11/2006, 15h06
  2. Sortir d'une boucle de parcour d'un Recordset
    Par Mariboo dans le forum IHM
    Réponses: 2
    Dernier message: 12/06/2006, 18h07
  3. Sortir d'une boucle en fonction d'une durée
    Par BECHE dans le forum Langage
    Réponses: 8
    Dernier message: 30/11/2005, 11h08
  4. [DEBUTANT] sortir d'une boucle avec un touche particulière
    Par thibouille dans le forum Débuter
    Réponses: 4
    Dernier message: 25/10/2005, 06h44
  5. SORTIR D'UNE BOUCLE
    Par chekibperl dans le forum Langage
    Réponses: 2
    Dernier message: 22/10/2005, 12h48

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