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 :

Utiliser une variable PL/SQL dans une requête


Sujet :

PL/SQL Oracle

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 45
    Points : 21
    Points
    21
    Par défaut Utiliser une variable PL/SQL dans une requête
    Bonjour a tous,

    Je m'explique:

    j'ai deux blocs plsql imbriques l'un dans l'autre.

    Dans le premier bloc, je fais une requete et je stocke le resultat dans une variable VAR_PREMIER_BLOC;

    J'aimerais donc utiliser cette variable dans la requete du deuxieme bloc, ie un truc du genre:

    OPEN CURSOR FOR 'SELECT TATATA FROM MATABLE WHERE TOTO=VAR_PREMIER_BLOC';

    Mais il ne reconnait pas ma variable VAR_PREMIER_BLOC dans la requete.

    Quelqu'un pourrait-il m'aider?

    Merci

  2. #2
    Membre actif
    Avatar de (Benoit)
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 184
    Points : 289
    Points
    289
    Par défaut
    Il faut d'abord déclarer ton curseur comme prenant un paramètre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    DECLARE
    CURSOR moncurseur (un_parametre VARCHAR2) IS
    SELECT TATATA  FROM MATABLE
    WHERE MonChamp = un_parametre;
    ...
     
    BEGIN
    OPEN moncurseur ('abc');
    FETCH ....
    "J'adorerais changer le monde, mais pas moyen de mettre la main sur le code source."
    chez moi

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 110
    Points : 111
    Points
    111
    Par défaut
    soit comme benoit te l'a indiqué
    soit
    OPEN CURSOR FOR (SELECT TATATA FROM MATABLE WHERE TOTO=VAR_PREMIER_BLOC);
    soit
    OPEN CURSOR FOR 'SELECT TATATA FROM MATABLE WHERE TOTO='||VAR_PREMIER_BLOC;

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/12/2010, 21h20
  2. Réponses: 4
    Dernier message: 03/04/2010, 12h05
  3. Réponses: 3
    Dernier message: 19/03/2009, 15h49
  4. Réponses: 6
    Dernier message: 10/06/2008, 17h18
  5. Réponses: 3
    Dernier message: 06/09/2006, 09h06

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