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 :

Retrouver nom colonne contenant valeur particulière


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 127
    Par défaut Retrouver nom colonne contenant valeur particulière
    Bonjour à tous et à toutes, je remercie d'avance tous ceux et/ou toutes celles qui prendront le temps de m'aider.

    Je cherche à retrouver le nom d'une colonne qui contient certaines valeurs particulières, celles-ci étant (sans le tiret, uniquement la valeur en italique) :
    - Ouverte
    - En Cours
    - Replanifiée
    - Réalisée
    - Annulée

    Je sais comment lister le nom des colonnes d'une table grâce à cette requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Select COLUMN_NAME 
    from USER_TAB_COLUMNS 
    where TABLE_NAME='NomTable';
    Ce qui me retourne bien le nom de toutes les colonnes de la table 'NomTable', maintenant je n'aimerais conserver que celles-ci qui contiennent les valeurs citées précédemment et je ne sais pas vraiment comment le faire en langage SQL. Algorithmiquement parlant, il faudrait faire:
    Parmi la liste des colonnes retournées, si la colonne contient une des valeurs spécifiques alors la retenir sinon passer à la suite...
    Je tiens à préciser que je ne suis pas du tout expert Oracle... Auriez vous une suggestion à me faire svp ? Merci

    Bonne après-midi à tous et à toutes.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2008
    Messages : 75
    Par défaut
    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
     
    create or replace procedure chercher(p_x varchar2)
     is
     v_col varchar2(30);
     v_i number;
     begin
     for rg in ( Select COLUMN_NAME col from USER_TAB_COLUMNS where TABLE_NAME=upper('matable') and DATA_TYPE='VARCHAR2')
     loop
       execute immediate ' select count(*) from matable where '|| rg.col||'=:1' into v_i using p_x ;
       if v_i<>0 then
                dbms_output.put_line (rg.col);
       end if;
     end loop;
     end ;
    /

  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 127
    Par défaut
    Je n'ai qu'une chose à dire: Impressionnant !!! Merci infiniment shan08, je vois que tu parles Oracle couramment ce qui me dépanne bien ! Merci beaucoup. Bonne après-midi.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2008
    Messages : 75
    Par défaut
    Merci a toi totoz

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

Discussions similaires

  1. Déplacer une colonne contenant le nom d'une personne
    Par Zym01 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/09/2010, 11h26
  2. Réponses: 7
    Dernier message: 23/11/2009, 15h59
  3. comment retrouver les colonnes contenant une donnée precise
    Par monthaldo dans le forum Administration
    Réponses: 3
    Dernier message: 27/12/2007, 17h40
  4. Réponses: 2
    Dernier message: 17/07/2007, 09h49
  5. Réponses: 2
    Dernier message: 12/07/2007, 10h12

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