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

Langage SQL Discussion :

Extraire la valeur d'une variable


Sujet :

Langage SQL

  1. #1
    Membre habitué
    Inscrit en
    Décembre 2010
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 9
    Par défaut Extraire la valeur d'une variable
    Salut,

    Mon problème est le suivant : je veux faire un select pour une colonne d'une table, mais le nom de la colonne est contenu dans une variable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var := 'un_nom_colonne';
     
    select tab.var
      from tableau tab
     where id= 3;
    Mon problème est au niveau de la syntaxe "tab.var" ne marche pas !

    Comment est ce que je pourrais avoir la valeur d'une variable pour l'appliquer dans la requête ?

    Merci pour votre aide

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Quel est votre SGBD ?

  3. #3
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    La syntaxe ':=' permet de penser qu'il s'agit de PL/SQL donc ORACLE.

    Si le nom de colonne doit être dans une variable il faut faire du SQL dynamique.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    declare 
    VAR varchar2(32) := 'un_nom_colonne';
    SQL_TEXT varchar2(100);
     
    begin
      SQL_TEXT := 'select ' || VAR || ' from tableau tab where id = 3';
      execute immediat SQL_TEXT 
        bulk collect into variable_result
    end;
    Définir variable_result avec le type correct (table of ????).

    Autre possibilité : le nom est choisi dans une liste connue, dans ce cas utiliser du sql normal avec une syntaxe CASE ..END en fonction d'une variable d'entrée.

  4. #4
    Membre habitué
    Inscrit en
    Décembre 2010
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 9
    Par défaut
    Merciiii, ca a marché

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

Discussions similaires

  1. [XSL] Comment modifier la valeur d'une variable?
    Par sorcer1 dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 17/02/2010, 13h26
  2. Réponses: 2
    Dernier message: 02/10/2007, 11h42
  3. afficher dans une boite de dialogue la valeur d'une variable
    Par micknic dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 10/07/2005, 09h25
  4. Intercepter le changement de valeur d'une variable
    Par Captain_JS dans le forum C++Builder
    Réponses: 5
    Dernier message: 07/01/2005, 08h04
  5. [langage] Extraire un block dans une variable multiligne
    Par |DUCATI| DesMo dans le forum Langage
    Réponses: 9
    Dernier message: 11/02/2003, 14h56

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