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 :

Problème de boucle sur curseur et d'affection de valeur [11gR2]


Sujet :

PL/SQL Oracle

  1. #1
    Membre du Club
    Inscrit en
    Mars 2002
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 68
    Points : 49
    Points
    49
    Par défaut Problème de boucle sur curseur et d'affection de valeur
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    declare
    
    CURSOR ListeInterface IS
       SELECT * FROM PROD_TAB_TYPE_ERREUR;
      mon_interface PROD_TAB_TYPE_ERREUR%ROWTYPE;
    
    
    CURSOR ListeErreur(interface IN VARCHAR2) IS
       SELECT err.categorie
       FROM PROD_TAB_TYPE_ERREUR cde,PROD_TAB_CODE_ERROR_DETAILED err
       WHERE err.id_interface = cde.id
       AND cde.interface = interface;
      mes_erreurs PROD_TAB_CODE_ERROR_DETAILED%ROWTYPE;
      
      
      cat VARCHAR2(100);
      LogError NUMBER;
      logTotal NUMBER;
      
    begin
    
    --OPEN ListeInterface;
    --LOOP
        
        --LOOP POUR AFFICHER LES STATS POUR CHAQUE INTERFACE
        --FETCH ListeInterface INTO mon_interface;
        
        --DBMS_OUTPUT.PUT_LINE('INTERFACE : ' || mon_interface.interface);
        --DBMS_OUTPUT.PUT_LINE('Description : ' || mon_interface.description);
        
        
        
        OPEN ListeErreur('CREDIT DEBIT MEMO');
        LOOP
            FETCH ListeErreur INTO mes_erreurs;        
            DBMS_OUTPUT.PUT_LINE(mes_erreurs.categorie);
            EXIT WHEN ListeErreur%NOTFOUND;
        END LOOP;
        CLOSE ListeErreur;    
        
        DBMS_OUTPUT.PUT_LINE('***************************************************************');
        
        --EXIT WHEN ListeInterface%NOTFOUND;
    --END LOOP;
    
    --CLOSE ListeInterface;
    
    END;
    /

    Je n'arrive pas a faire le deuxieme ouverture de curseur et recuperer les categorie. je sais que c'est simple la solution mais je bute dessus.
    voilà mon erreur : PLS-00394: [FETCH ListeErreur INTO mes_erreurs;] wrong number of values in the INTO list of a FETCH statement

    pouvez vous m'aider et me dire ce qui me manque.
    le curseur ListeErreur recuperer une colonne seulement. donc je ne comprends pas pourquoi le FETCH ne fonctionne pas sur mes _erreurs et pourquoi je ne peux pas faire ensuite mes_erreurs.categorie et boucler sur toutes les valeurs de ma colonne.

    please help
    Repondez SVP Sur LeMafiozo@hotmail.com MERCI

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 803
    Points
    30 803
    Par défaut
    Le type de la variable mes_erreurs ne correspond pas à ce que retourne le curseur ListeErreur.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    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
    Chaque fois quand vous écrivez ce type de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
      Open cursor
      Loop
         Fetch cursor Into valeur
         Open autre cursor(valeur)
         Loop
            process_data ...
    ...
    Vous avez fait une jointure de type nested loop dans votre code PL/SQL. Les bases des données relationnelles ont été crées pour faire des jointures en SQL!

  4. #4
    Membre du Club
    Inscrit en
    Mars 2002
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 68
    Points : 49
    Points
    49
    Par défaut
    le probleme est resolu MERCI.
    Repondez SVP Sur LeMafiozo@hotmail.com MERCI

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

Discussions similaires

  1. problème de boucle sur une table
    Par alexphi dans le forum VBA Access
    Réponses: 7
    Dernier message: 02/06/2010, 15h40
  2. [Toutes versions] Problème de boucle sur un Recordset
    Par Roums dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 16/10/2009, 11h41
  3. Réponses: 1
    Dernier message: 12/11/2008, 10h45
  4. Procédure SQL : Boucle sur CURSEUR
    Par Yakaldir dans le forum DB2
    Réponses: 5
    Dernier message: 10/03/2007, 15h56
  5. Problème de boucle sur une checkbox
    Par jeremie74 dans le forum Flash
    Réponses: 3
    Dernier message: 05/03/2007, 14h58

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