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 :

PL SQL - trop de boucles dans les étoiles [11g]


Sujet :

PL/SQL Oracle

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2013
    Messages : 2
    Points : 2
    Points
    2
    Par défaut PL SQL - trop de boucles dans les étoiles
    Bonjour,
    Ce que je veux c'est que la liste ci-dessous est affiché

    Étudiant: Vincent Gaudet, cours: 420-PK1-SL, résultat: 48
    Étudiant: Vincent Gaudet, cours: 201-GNB-SL, résultat: 85,5
    Étudiant: Etienne Lalonde, cours: 201-GNB-SL, résultat: 85,5
    Étudiant: Etienne Lalonde, cours: 420-PK1-SL, résultat: 86
    Étudiant: Robert Leroux, cours: 201-GNB-SL, résultat: 95
    Étudiant: Robert Leroux , cours: 420-PK1-SL, résultat: 97,9
    Étudiant: Josée Neuwahl, cours: 420-PK1-SL, résultat: 91,25
    Étudiant: Josée Neuwahl, cours: 201-GNB-SL, résultat: 86

    par une procedure PL/SQL mais avec des étoiles par rapport aux chiffres (60-69,9: *, 70-79,9 ** etc)

    J'ai fait ça (J'ai utilisé 5000 pour l'étoile pour avoir la possibilité de voir le mauvais boucle mais normalement 5 étoiles pour 100% serait suffisant):

    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
    CREATE OR REPLACE PROCEDURE Resultats
     
      BEGIN
         OPEN c1;
         LOOP
            FETCH c1 INTO v_prenom, v_nom, v_cours, v_noteFinal;
            EXIT WHEN c1%NOTFOUND OR c1%NOTFOUND IS NULL;
            IF (v_noteFinal-60) <= 0 THEN
               etoile:='-';
            ELSE
               i:=0;
               WHILE v_noteFinal>=60 LOOP
                   v_noteFinal:=v_noteFinal-10;
                   etoile:=etoile || '*';
               END LOOP;
            END IF;
            DBMS_OUTPUT.PUT_LINE('Étudiant(e): ' || v_prenom || ' ' || v_nom 
            ||  ', Cours: ' || v_cours || ', Résultat: ' || etoile);
          END LOOP;
          CLOSE c1;
      END;
      /
     
    Procedure created.
    Mais ça ne donne pas le boucle que j'ai prévu (ici le dernier résultat comme exemple):
    Étudiant(e): Josée Neuwahl, Cours: 201-GNB-SL, Résultat:
    -*******************************************************************************
    ********************************************************************************
    ********************************************************************************
    ********************************************************************************
    ********************************************************************************
    ********************************************************************************
    ********************************************************************************
    ********************************************************************************
    *******************************************************************
    (707 étoiles)
    C'est un erreur de logique mais si quelqu'un me puisse aider s'il vous plaît ???

    Merci beaucoup

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    Il suffit peut être de réinitialiser la variable etoile dans votre boucle...

  3. #3
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Cela dit, j'aurai plutot fait directement quelque chose comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
         SELECT e.prenom, e.nom, c.noCours, n.noteFinal, COALESCE(RPAD('*****', (n.noteFinal-50)/10), '-')
         FROM Notefinal n
         JOIN Etudiant e
         ON e.noDA = n.noDA
         JOIN Cours c
         ON e.noProgramme = c.noProgramme
         ORDER BY e.nom;

  4. #4
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2013
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Merci
    Merci, oui, ça marche

  5. #5
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 460
    Points : 8 074
    Points
    8 074
    Par défaut
    Moi ce que j'aime dans ce sujet, c'est son titre surréaliste...
    Consultant / formateur Oracle indépendant
    Certifié OCP 12c, 11g, 10g ; sécurité 11g

    Ma dernière formation Oracle 19c publiée sur Linkedin : https://fr.linkedin.com/learning/oracle-19c-l-administration

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

Discussions similaires

  1. les boucles dans le Framework ou mauvais chemin SQL
    Par mederik dans le forum Cognos
    Réponses: 0
    Dernier message: 19/05/2010, 16h20
  2. Trop de bruit dans les images renvoyées par la webcam
    Par Gautier_mic dans le forum OpenCV
    Réponses: 0
    Dernier message: 18/02/2010, 19h25
  3. [XL-2000] Boucle dans les cellules
    Par amerex dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/11/2009, 01h09
  4. Boucle dans les diagrammes de séquence
    Par Bayard dans le forum BOUML
    Réponses: 4
    Dernier message: 16/01/2008, 20h25
  5. Réponses: 2
    Dernier message: 30/05/2006, 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