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

PL/SQL Oracle Discussion :

Boucle for avec 2 variables


Sujet :

PL/SQL Oracle

  1. #1
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 61
    Points : 40
    Points
    40
    Par défaut Boucle for avec 2 variables
    Bonjour

    Dans une procédure pl sql, je veux faire une boucle for sur 2 variable qui prendront comme argument une liste de couples prédéfinis, par exemple:

    FOR var1, var2 IN (a,1) (b,2) LOOP
    ..
    .

    Mais je sais pas la bonne syntaxe pour faire cela, si aussi vous avez un bon cours pour les procedure pl/sql prière de me l'indiquer.

    Merci

  2. #2
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Bonjour,

    Une idée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FOR var1+var2 IN ('a1', 'b2'...) LOOP
    A essayer !


  3. #3
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 61
    Points : 40
    Points
    40
    Par défaut
    J'ai essayé mais ça marche pas
    je note que dans le corps de mon code je manipule les 2 variables séparément.

  4. #4
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    RE,

    Ben si tu pouvais poster ton code, ainsi que l'erreur générée.

    Et je suppose que les variables sont de type différent, j'ai pas tilté....


  5. #5
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 61
    Points : 40
    Points
    40
    Par défaut
    Voici le code que je teste maintenant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    DECLARE 
    var1 Number;
    var2 VARCHAR2(20);
    BEGIN
     
    FOR (var1, var2) IN {(1,'a'),(2,'b')} LOOP  --syntaxe qui me pose problème
    --
    insert into test values(var1 , var2);   --juste pour tester si la syntaxe marche
     
    END LOOP;
     
    END;
    /

    pour ta proposition , oracle me retourne l'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ORA-06550: line 6, column 7:
    PLS-00103: Encountered the symbol "+" when expecting one of the following:
     
       in
    ORA-06550: line 6, column 27:
    PLS-00103: Encountered the symbol "LOOP" when expecting one of the following:
     
       ) , and or

  6. #6
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 386
    Points
    18 386
    Par défaut
    En SQL ça fonctionne mais en PL/SQL je ne sais pas, essayez ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FOR (var1, var2) IN ((1,'a'),(2,'b')) LOOP

  7. #7
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 61
    Points : 40
    Points
    40
    Par défaut
    Hm malheureusement ça marche pas aussi,

    Qu'est ce que tu veux dire par :
    En SQL ça fonctionne
    Tu peux me donner un exemple ou ça fonctionne?

    Merci

  8. #8
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 386
    Points
    18 386
    Par défaut
    Ici :
    http://www.developpez.net/forums/d74...s/#post4302321

    Pas la partie boucle bien évidement.

  9. #9
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Citation Envoyé par radzar Voir le message
    Bonjour

    Dans une procédure pl sql, je veux faire une boucle for sur 2 variable qui prendront comme argument une liste de couples prédéfinis, par exemple:

    FOR var1, var2 IN (a,1) (b,2) LOOP
    ..
    .

    Mais je sais pas la bonne syntaxe pour faire cela, si aussi vous avez un bon cours pour les procedure pl/sql prière de me l'indiquer.

    Merci
    A priori ce que tu essaie de faire est toute simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    INSERT INTO test 
     Select 1, 'a' From dual union all
     Select 2, 'b' From dual
    Allez, bon courage!

Discussions similaires

  1. [Batch] boucle for avec un espace dans une variable
    Par etienne72 dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 28/06/2012, 17h01
  2. boucle For avec variable variant
    Par frogs dans le forum Langage
    Réponses: 4
    Dernier message: 19/08/2011, 11h37
  3. Boucle for avec variable dans le texte
    Par Alplob dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 21/06/2011, 10h33
  4. Réponses: 2
    Dernier message: 14/04/2010, 18h39
  5. Boucle for avec SELECT et variable indicée
    Par hisin dans le forum Langage
    Réponses: 4
    Dernier message: 14/12/2009, 11h53

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