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 :

Select objets tables from all_tab_columns


Sujet :

SQL Oracle

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Juillet 2023
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Juillet 2023
    Messages : 5
    Points : 8
    Points
    8
    Par défaut Select objets tables from all_tab_columns
    Bonjour,
    J'utilise SQL Developer connecté à une base ORACLE.
    Je souhaite récupérer toutes les tables ayant les colonnes suivantes : ZONE1, ZONE2,ZONE3 ET ZONE4 (liste exhaustive) dans all_tab_columns

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    select distinct OWNER,TABLE_NAME from all_tab_columns where 
    COLUMN_NAME in ('COLLCOD','BUDGEXE','BUDGNUM','CHAPCOD','ACTICOD','SERVCOD')
    --COLUMN_NAME = 'COLLCOD' 
    --COLUMN_NAME = 'BUDGEXE' 
    and COLUMN_NAME = 'BUDGNUM'
    --and COLUMN_NAME = 'CHAPCOD'
    --and COLUMN_NAME = 'ACTICOD'
    and OWNER = 'CORIOLIS'
    ;

    Merci pour vos réponses

  2. #2
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 947
    Points : 5 846
    Points
    5 846
    Par défaut
    Quel est le problème ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select OWNER,TABLE_NAME 
      from all_tab_columns 
     where column_name in ('ZONE1', 'ZONE2','ZONE3', 'ZONE4')
     order by table_name;
    Si vous voulez les tables pour lesquels les 4 colonnes existent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select OWNER,TABLE_NAME 
      from all_tab_columns 
     where column_name in ('ZONE1', 'ZONE2','ZONE3', 'ZONE4')
     group by  OWNER,TABLE_NAME
    having count(*) = 4
    order by table_name;

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Juillet 2023
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Juillet 2023
    Messages : 5
    Points : 8
    Points
    8
    Par défaut
    Merci. oui je souhaite trouver les tables ayant l'ensemble des colonnes/Zones/champs (liste exhaustive)
    les tables pour lesquels les 6 colonnes/Zones/champs existent.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    select distinct OWNER, TABLE_NAME, column_name from all_tab_columns where 
    COLUMN_NAME in ('COLLCOD','BUDGEXE','BUDGNUM','CHAPCOD','ACTICOD','SERVCOD')
    and OWNER = 'CORIOLIS'
    group by 1,2
    having count(*) = 6
    order by 1,2,3
    ;
    ORA-00979: n'est pas une expression GROUP BY
    00979. 00000 - "not a GROUP BY expression"
    *Cause:
    *Action:
    Erreur à la ligne 28, colonne 17

  4. #4
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 947
    Points : 5 846
    Points
    5 846
    Par défaut
    Il ne faut pas sélectionner column_name ou alors aggréger les colonnes dans une liste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LISTAGG(column_name, ', ') WITHIN GROUP (ORDER BY column_name)

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Juillet 2023
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Juillet 2023
    Messages : 5
    Points : 8
    Points
    8
    Par défaut
    C'est ok merci j'ai trouvé ce code fonctionne.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    select distinct OWNER,TABLE_NAME,count(column_name) from all_tab_columns  
    where 
    COLUMN_NAME in ('COLLCOD','BUDGEXE','BUDGNUM','CHAPCOD','ACTICOD','SERVCOD')
    and OWNER = 'CORIOLIS'
    group by OWNER, TABLE_NAME
    having count(COLUMN_NAME) = 6
    order by 1,2,3
    ;

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

Discussions similaires

  1. select table from another server
    Par Hepil dans le forum Développement
    Réponses: 2
    Dernier message: 12/11/2009, 13h59
  2. Lecture variable objet table - UPDATE FROM
    Par MAndris dans le forum SSIS
    Réponses: 3
    Dernier message: 27/03/2009, 15h10
  3. Incrémenter champ : insert into . select max(.) + 1 from .
    Par ludo.guy dans le forum Langage SQL
    Réponses: 10
    Dernier message: 25/11/2004, 14h39
  4. [Relationnel Objet] Tables d'Objet et les OID
    Par Laurent Dardenne dans le forum Administration
    Réponses: 5
    Dernier message: 24/03/2004, 18h11
  5. SYBASE SELECT imbriqué clause FROM
    Par Nicolas Martel dans le forum Sybase
    Réponses: 2
    Dernier message: 19/11/2003, 15h28

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