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 :

syntaxe pour un curseur dans un curseur


Sujet :

PL/SQL Oracle

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 3
    Par défaut syntaxe pour un curseur dans un curseur
    Bonjour à tous,

    J'espère que vous allez pouvoir m'aider... et que ce que je veux faire est possible.

    J'ai 2 requêtes SQL.
    La clause where de la seconde dépend des résultats de la première.

    Ma première requête est dans un curseur.
    Ma seconde requête renvoyant plusieurs lignes, je veux également la mettre dans un curseur pour pouvoir boucler sur les résultats.

    Voici le code de ma première requête (mon curseur)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     SELECT
                maTable1.maDate AS cur_maDate,
                maTable1.monId,
                maTable1.monId2 AS cur_monId2,
                maTable2.maQuantite
          FROM
                maTable1
                INNER JOIN maTable2 ON
                      maTable2.monId3=maTable1.monId
          WHERE
                maTable1.monId4=p_ID AND
                maTable1.code='ABC'
    ;
    Et le code de ma seconde requête
    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
    SELECT
                monId,
                maDate AS v_maDate
          FROM
                maTable1
          WHERE
                monId=cur_monId2 AND
                code='ABC' AND
                maQuantite>=0 AND
                maDate =(SELECT
                                        MAX(maDate)
                                  FROM
                                        maTable
                                  WHERE
                                        monId=cur_monId2 AND
                                        Fcode='ABC' AND
                                        maDate<cur_maDate AND
                                        maQuantite>=0)
     
    ;
    Je ne sais pas comment implémenter mon code pour ma seconde requête utilise les valeurs de la première.
    Pouvez-vous m'aider s'il vous plait ?

    Merci

  2. #2
    Membre Expert Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Par défaut
    Il faut faire un curseur sur la premiére requete (ex C1)
    Tu peux ensuite référencer dans ta deuxieme requete une colonne de ton premier curseur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select....from table2 where table2.macolonne=C1.macolonne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    for C1 in (select .... from table1 where ....)
    LOOP
      for c2 in (select ... from table2 where  table2.macolonne=C1.macolonne)
      loop 
      ....
      end loop;
    end loop;

Discussions similaires

  1. Réponses: 3
    Dernier message: 07/01/2014, 11h46
  2. Réponses: 5
    Dernier message: 25/08/2008, 14h28
  3. Syntaxe pour un update dans une boucle ..
    Par fmoriet dans le forum SQL Procédural
    Réponses: 0
    Dernier message: 15/11/2007, 09h55
  4. Réponses: 3
    Dernier message: 26/07/2007, 10h13
  5. Position du curseur dans Edit
    Par MrJéjé dans le forum C++Builder
    Réponses: 3
    Dernier message: 20/06/2002, 17h09

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