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 :

Afficher le nom d'une colonne et sa valeur


Sujet :

SQL Oracle

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Octobre 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Octobre 2006
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Afficher le nom d'une colonne et sa valeur
    Bonjour,

    J'ai un petit problème vraiment particulier : je souhaiterais effectuer une requête SQL simple permettant d'afficher pour une ligne donnée d'une table donnée le nom des colonnes et leur valeur correspondante. Exemple :
    Etant donnée la table PROJET :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    PRO_ID PRO_CODE PRO_LIBELLE
    ------------------------------
    1      X5       Toto
    2      X10      Tata
    Je souhaiterais afficher le résultat suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    COL_NAME     COL_VALUE
    -------------------------
    PRO_ID               2
    PRO_CODE           X10
    PRO_LIBELLE       Tata
    Donc extraire le contenu d'une ligne précise de ma table, mais présenter le résultat en "colonne"... Je me suis pris la tête avec des jointures vers la table ALL_TAB_COLUMNS, des curseurs, du SQL dynamique... et je n'y arrive pas. En plus je suis sur un environnement ou je ne peux pas créer de table, je n'ai qu'un accès en consultation.
    Pouvez-vous m'aider ?

  2. #2
    Membre expérimenté
    Avatar de randriano
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 219
    Points : 1 438
    Points
    1 438
    Par défaut
    Utiliser des jointures n'est bien sûr pas possible. Mais tout d'abord assure-toi d'être un admin pour pouvoir utiliser ALL_TAB_COLUMNS ou utilise USER_TAB_COLUMNS.

    Voici une petite idée sur comment obtenir les paires nom_colonne | valeur mais pas avec l'affichage comme tu souhaites:
    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
    declare
    is
    v_colname varchar2(30);
    v_ClePrimaire INT;
    CURSOR c_thecolumns is
    	SELECT COLUMN_NAME FROM ALL_TAB_COLUMNS WHERE TABLE_NAME = 'PROJET';
    begin
    open c_thecolumns;
     
    	LOOP
    	   fetch c_thecolumns  INTO v_colname;
    	   EXIT when c_thecolumns%NOTFOUND;
    	   EXECUTE IMMEDIATE 'SELECT ' || v_colname || ' FROM PROJET WHERE ID = ' || v_ClePrimaire;
    	END LOOP;
     
    CLOSE c_thecolumns;
    end;
    Mais au moins tu dois fournir l'ID du field à lire par exemple sur v_ClePrimaire

  3. #3
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 18
    Points : 21
    Points
    21
    Par défaut
    Citation Envoyé par mnitu Voir le message
    Référence parfaite - bravo mnitu
    Heu, et merci aussi Thomas pour les xxx fois ou tu m'as montré la voie.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Février 2006
    Messages
    139
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2006
    Messages : 139
    Points : 152
    Points
    152
    Par défaut
    bonsoir,

    et la version moderne avec bulk et execute immediate
    http://oracledmt.blogspot.com/2006/0...t-queries.html

Discussions similaires

  1. Réponses: 9
    Dernier message: 22/08/2007, 13h25
  2. Changer le nom d'une colonne
    Par Poussy-Puce dans le forum Langage SQL
    Réponses: 4
    Dernier message: 16/07/2007, 12h57
  3. Réponses: 10
    Dernier message: 01/06/2006, 17h01
  4. comment modifier le nom d'une colonne via VBA?
    Par Invité dans le forum Access
    Réponses: 6
    Dernier message: 24/11/2005, 16h36
  5. mettre un nom d'une colonne d'un dbgrid à partir d'un edit
    Par bertrand_declerck dans le forum Bases de données
    Réponses: 2
    Dernier message: 21/08/2005, 14h30

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