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

Oracle Discussion :

Select en utilisant une variable


Sujet :

Oracle

  1. #1
    Membre averti
    Inscrit en
    Mai 2004
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 42
    Par défaut Select en utilisant une variable
    Bonjour tout le monde,

    Ma version d'Oracle est la 10g

    Donc je sais pas si le titre est très explicite mais voilà en fait j'essaie de faire une sorte de SQL dynamque si on peut dire...

    J'ai une table qui contient des colonnes dont seules les dernieres lettres changent. J'ai en parametre de ma procedure ces 2 dernieres lettres et je fais un test sur la valeur de la colonne correspondante aux lettres que j ai passé en paramètre...
    Et ce que je cherche à faire, c'est que à chaque fois que je lance ma procédure, je créé une varaible qui contient le nom de la colonne puis je fais un SELECT sur la colonne qui a la valeur de cette varaible...
    Je sais pas si vous me suivez mais je vais mettre un peu de code pour vous aidez...

    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
     
    DECLARE 				
     
    --ca c'est la variable qui va contenir le nom de la colonne souhaitee				
    w_label VARCHAR(15);
     
    BEGIN
     
    --donc je l instancie avec le debut commun aux colonnes et la valeur des --2 lettres passees en parametre
     
    w_label := 'COLONNE_'||p_lettres;
     
    --ensuite  je veux utiliser la VALEUR de w_label pour faire un select sur la colonne souhaitée 
     
    SELECT ||w_label
    FROM MA_TABLE
     
    EXCEPTION
    	WHEN OTHERS THEN
    		 'Erreur truc muche';
    	RAISE SORTIE;
     
    END;
    Donc comme vous voyez, j'avais mis des || pour recuperer la valeur mais ca n'a pas l'air d etre ca... Et il me dit qu il ne connait pas la colonne que je veux...
    Si vous avez 5 minutes et la solution...
    Merci d avance

  2. #2
    Membre Expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Par défaut Re: Select en utilisant une variable
    Citation Envoyé par georgeabitbol
    (...) voilà en fait j'essaie de faire une sorte de SQL dynamque si on peut dire...
    (...)
    C'est exactement du SQL dynamique qu'il vous faut ! ;-)

    Vous devez donc construire dynamiquement une chaine qui contiendra l'ordre SELECT à exécuter.
    Reste ensuite à savoir ce que vous voulez faire des résultats de ce select...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 36
    Par défaut
    Bonjour,

    Utilise la commande EXECUTE IMMEDIATE :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    EXECUTE IMMEDIATE ('SELECT ' ||w_label || ' FROM MA_TABLE ) INTO Ma_variable_de_reception ;

  4. #4
    Membre averti
    Inscrit en
    Mai 2004
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 42
    Par défaut
    Bonjour,

    MErci bien ca à l'air de marcher mais, pour ceux que ca interesse, j'ai du décomposer en différentes étapes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    w_label:= COLONNE_'||p_lettres;
    v_requete :=  '(SELECT ' ||w_label|| ' FROM MA_TABLE )';
     
    EXECUTE IMMEDIATE v_requete INTO w_result;
    Et ca marche, je peux utiliser la valeur de w_result que je voulais recuperer

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 08/06/2010, 12h15
  2. [PHP-JS] utiliser une variable php dans du javascript
    Par kcizth dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 06/02/2006, 11h53
  3. [FLASH MX2004] Utiliser une variable dans le code
    Par arnolem dans le forum Flash
    Réponses: 25
    Dernier message: 02/12/2005, 16h37
  4. [curseurs] utiliser une variable comme nom de champ
    Par Christian31 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 09/09/2005, 14h12
  5. [XSL] utiliser une variable pour nom d'élément
    Par luta dans le forum XSL/XSLT/XPATH
    Réponses: 13
    Dernier message: 07/09/2004, 13h58

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