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

SQL Oracle Discussion :

[PL/SQL] boucle dans un curseur


Sujet :

SQL Oracle

  1. #1
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 36
    Points : 40
    Points
    40
    Par défaut [PL/SQL] boucle dans un curseur
    Bonjour,*

    Est-il possible de mettre une boucle dans un curseur? J'ai une requete qui ramene un resultat sur une heure de la journée. Je voudrai faire une boucle pour chaque heure d'une journée et mettre le resultat dans un cursor.
    Je n'arrive pas à savoir si c'est possible et trouver une syntaxe qui foncitonne.

    un truc du genre :

    OPEN CURSOR FOR
    WHILE heureCourante<heureFin loop
    select...
    heurecourante := heureCourante +1/24;
    end loop;

    Est ce quelqu'un aurait une idée? Merci d'avance

  2. #2
    Membre habitué Avatar de Loyd1974
    Profil pro
    Inscrit en
    Août 2007
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 176
    Points : 196
    Points
    196
    Par défaut
    Une boucle comme cela ne me dit rien, par contre, tu peux faire une boucle en pl qui modifiera tes valeurs d'heure début et heure fin.

    Ou alors, il faut modifier ta requête pour qu'elle te ramène toutes les heures de la journée plutôt qu'une seule, mais pour cela, il faudrait plus de détail sur celle-ci

  3. #3
    Rédactrice

    Avatar de kalyparker
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Janvier 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 327
    Points : 2 998
    Points
    2 998
    Par défaut
    J'ai une requete qui ramene un resultat sur une heure de la journée. Je voudrai faire une boucle pour chaque heure d'une journée et mettre le resultat dans un cursor.
    As tu réellement besoin de mettre le résultat dans un curseur ?
    Quel traitement veux tu faire ?
    It isn't that they can't see the solution, it's that they can't see the problem.
    Mes Articles et Traductions (Microstrategy, Css et Javascript)
    Si vous souhaitez contribuer à la rubrique BI, contactez-moi ou tout autre membre de l'équipe BI par MP.

  4. #4
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    FOR i IN 1..150 LOOP
    DBMS_OUTPUT.PUT_LINE(i);
    END LOOP;
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

  5. #5
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Avec des dates :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    DECLARE
    	v_datedeb DATE := TRUNC(SYSDATE) + 15/24;
    	v_datefin DATE := TRUNC(SYSDATE+1) + 2/24;
    	v_nbheure NUMBER;
    BEGIN
    	v_nbheure := (v_datefin - v_datedeb) * 24;
    	DBMS_OUTPUT.PUT_LINE(TO_CHAR(v_datedeb, 'DD/MM/RRRR HH24') || '->' || TO_CHAR(v_datefin, 'DD/MM/RRRR HH24')
    							|| ' = ' || v_nbheure || 'h');
    	FOR r IN 0 .. v_nbheure
    	LOOP
    		DBMS_OUTPUT.PUT_LINE(TO_CHAR(v_datedeb + r / 24, 'DD/MM/RRRR HH24'));
    	END LOOP;
    END;
    31/08/2007 15->01/09/2007 02 = 11h
    31/08/2007 15
    31/08/2007 16
    31/08/2007 17
    31/08/2007 18
    31/08/2007 19
    31/08/2007 20
    31/08/2007 21
    31/08/2007 22
    31/08/2007 23
    01/09/2007 00
    01/09/2007 01
    01/09/2007 02
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

Discussions similaires

  1. Problème de boucle dans deux curseurs.
    Par amine1980 dans le forum PL/SQL
    Réponses: 2
    Dernier message: 13/11/2008, 15h52
  2. Boucle dans requête SQL.
    Par Philou1313 dans le forum ASP
    Réponses: 3
    Dernier message: 30/06/2006, 21h50
  3. Réponses: 2
    Dernier message: 30/05/2006, 14h58
  4. PL/SQL, problème dans un curseur avec un insert
    Par yador dans le forum PL/SQL
    Réponses: 4
    Dernier message: 27/01/2006, 14h31
  5. [PL/SQL] Traitement d'un curseur dans une fonction
    Par ruda.tom dans le forum Oracle
    Réponses: 1
    Dernier message: 24/10/2005, 22h06

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