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 :

utilisation du resultat d'une requete dans un curseur


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de pseudobidon57
    Inscrit en
    Octobre 2006
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 133
    Par défaut utilisation du resultat d'une requete dans un curseur
    bonjour, je souhaiterais reprendre le resultat d'une requete dans un curseur.
    par exemple, reprendre le maximum des ID d'une table pour l'utiliser en pl/sql comme ci dessous:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select max(customer_id) from customer;
    je voudrai utiliser le resultat de cette requete dans un curseur, mais je ne sais pas comment faire..

  2. #2
    fab
    fab est déconnecté
    Membre averti
    Inscrit en
    Juillet 2003
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 44
    Par défaut
    Salut,

    Si je dit pas de betise un curseur c'est un jeu de données, or max ca te renvoit une seule valeur.

    en pl/sql avec une variable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    I INTEGER;
    SELECT max(customer_id) INTO I FROM customer;
    ou avec un curseur mais qui ne va boucler qu'une seule fois (?)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    I INTEGER;
    For MonCurseur IN (
    SELECT max(customer_id) MaximumID FROM customer)
    loop
    I := Moncurseur.MaximumID
    end loop;
    Ca répond à ta question ?

  3. #3
    Membre confirmé Avatar de pseudobidon57
    Inscrit en
    Octobre 2006
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 133
    Par défaut
    non, pas trop, mais je crois que mon enonce n'est pas tres precis.
    (veuillez m'excuser pour les accents, je travaille a londres, et tout le monde sait qu'il n'y a pas d'accent dans la langue de shakespeare, donc pas sur les claviers non plus)
    j'ai deja un curseur qui fonctionne, qui se deplace sur plusieurs valeurs, et je souhaite y modifier les donnee d'une table en fonction de la valeur retournee par la requete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select max(customer) from customer;
    mais je ne sais pas comment recuperer le resultat de cette requete dans une variable pour l'utiliser ensuite dans un curseur..

  4. #4
    fab
    fab est déconnecté
    Membre averti
    Inscrit en
    Juillet 2003
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 44
    Par défaut
    Il faut faire quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    MyCustomer char(32)
    FOR MonCurseur IN (
    SELECT max(customer) Mycustomer FROM customer)
    loop
    if MonCurseur.Mycustomer > x
    then 
    UPDATE Matable set Monchamp = ;
     
    end loop;

  5. #5
    fab
    fab est déconnecté
    Membre averti
    Inscrit en
    Juillet 2003
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 44
    Par défaut
    Oups! j'ai appuyé sur Tab + espace

    Il faut faire quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Mavariable char(32);
    FOR MonCurseur IN (
      SELECT max(customer) Mycustomer FROM customer)
    loop
      if MonCurseur.Mycustomer > x
      then 
        Mavariable := MonCurseur.Mycustomer ;
        UPDATE Matable set Monchamp = Mavariable WHERE ... ;
      endif;
    end loop;
    Si c'est pas ça, alors je crois qu'on se comprend pas...

  6. #6
    Membre confirmé Avatar de pseudobidon57
    Inscrit en
    Octobre 2006
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 133
    Par défaut
    merci beaucoup fab, cette solution marche, mais ce n'est pas exactement ce que je souhaite faire.. je n'arrive pas expliquer clairement mon probleme, bien que je puisse utiliser cette solution.

    En fait je voudrais savoir s'il serait possible de stocker dans une variable le resultat de la requete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select max(customer_id) from customer;
    afin de l'utiliser plus tard dans un bloc pl/sql ( en l'occurence dans mon cas un curseur), mais afin de l'appeler, je ne souhaite pas avoir recours a un curseur... Me comprends tu?? je suis sur que la reponse a mon probleme est tres simple, me je ne m'exprime pas correctement. en tout cas merci pour ton aide, ta solution marche tout de meme.

  7. #7
    Membre émérite Avatar de Yorglaa
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    845
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2004
    Messages : 845
    Par défaut
    bah tu n'as cas déclarer une variable de type number (je suppose que customer_ID est un number) est d'y assigner le résultat avec INTO (dans du PL/SQL bien sûr !)...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT max(customer_id) INTO maVariableNumber FROM customer;

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

Discussions similaires

  1. utilisation du resultat d'une requete dans une autre
    Par lewhechris dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 26/09/2011, 09h05
  2. [MySQL] utiliser le resultat d'une requete dans un WHERE
    Par kakashi05 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 29/07/2011, 00h21
  3. Enregistrer le resultat d'une requete dans un document texte
    Par nmerydem dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 15/07/2005, 12h32
  4. resultat d'une requete dans une ifrmae aussi??
    Par selifx dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 08/02/2005, 14h20
  5. pb d'utilisation du resultat d'1 requete dans 1 autre
    Par joquetino dans le forum Langage SQL
    Réponses: 7
    Dernier message: 09/03/2004, 15h58

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