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 :

Recherche d'un champ dans plusieurs tables


Sujet :

SQL Oracle

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 73
    Points : 44
    Points
    44
    Par défaut Recherche d'un champ dans plusieurs tables
    Salut a tous,


    Je voudrais pouvoir trouver toutes les tables qui possede un champs donné..

    ex :

    disons que j'ai 20 tables ( j'en ai bcp plus mais c'est un exemple... je ne sais aps combien exactement) et je dois rechercher els table qui contiennent le champs FIELD1..

    QQ'un aurait-il une petite idée pour moi?

    Merci d'avance!

    Bogizo

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 802
    Points
    30 802
    Par défaut
    Cela est possible en consultant les tables du dictionnaire de la base de données. Bien qu'une norme ait été définie pour ces tables et vues, celle-ci est rarement mise en œuvre par les éditeurs de SGBD.

    En précisant le SGBD que vous utilisez et sa version, les réponses proposées seront adaptées aux spécificités et limitations de celui-ci.
    Règles du forum Langage SQL à lire par tous
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 73
    Points : 44
    Points
    44
    Par défaut
    merci pour les infos la SGBD est Oracle!


  4. #4
    Membre confirmé Avatar de chrifo
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    444
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 444
    Points : 481
    Points
    481
    Par défaut
    Bonjour,
    Sous oracle 9i par exemple, à adapter selon vos besoins précis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select distinct OWNER,TABLE_NAME from all_tab_columns where COLUMN_NAME = 'FIELD1'
    Je penche, donc je suis

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 73
    Points : 44
    Points
    44
    Par défaut
    Citation Envoyé par chrifo Voir le message
    Bonjour,
    Sous oracle 9i par exemple, à adapter selon vos besoins précis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select distinct OWNER,TABLE_NAME from all_tab_columns where COLUMN_NAME = 'FIELD1'
    Merci mais dans le cas de ta ligne de code je dois specifier le nom d'une table.. alors que je veux regarder dans chaque table d'oracle..

  6. #6
    Membre habitué Avatar de Loyd1974
    Profil pro
    Inscrit en
    Août 2007
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 176
    Points : 196
    Points
    196
    Par défaut
    Citation Envoyé par bogizo Voir le message
    Merci mais dans le cas de ta ligne de code je dois specifier le nom d'une table.. alors que je veux regarder dans chaque table d'oracle..


    COLUMN_NAME ! Tu trouves que ca ressemble beaucoup à TABLE_NAME?

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 73
    Points : 44
    Points
    44
    Par défaut
    Citation Envoyé par Loyd1974 Voir le message


    COLUMN_NAME ! Tu trouves que ca ressemble beaucoup à TABLE_NAME?
    Ben il a _NAME

    non mais serieusement... c'est le "all_tab_columns" qui me fait peur...

    un exemple concret pour moi?

    Merci

  8. #8
    Membre habitué Avatar de Loyd1974
    Profil pro
    Inscrit en
    Août 2007
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 176
    Points : 196
    Points
    196
    Par défaut
    Citation Envoyé par bogizo Voir le message
    Ben il a _NAME

    non mais serieusement... c'est le "all_tab_columns" qui me fait peur...

    un exemple concret pour moi?

    Merci
    All_tab_columns est une vue système qui va te permettre de lister toutes les colonnes de toutes les tables que tu as dans ta base. Tu as l'équivalent en dba et en user (dba_tab_columns, user_tab_columns)

    Sachant que la différence entre ces vues est :
    DBA_xxx : toute la base (dans ton cas précis, toutes les colonnes de toutes les bases de toute ta base)
    ALL_xxx : tous les objets auxquels tu as les droits d'accès
    USER_xxx: tous les objets créés par le USER avec lequel tu es connecté.

    Donc, si tu veux lister toutes les colonnes des tables d'un schéma, il faut que tu te connecte avec celui-ci et que tu interroges la vue USER_TAB_COLUMNS (ou alors, tu interroges les autres vues en rajoutant la condition OWNER = xxx)
    Si tu veux lister toutes les colonnes des tables accessibles par un USER, tu te connectes avec celui-ci et tu interroges la vue ALL_TAB_COLUMNS

    Et si tu veux tout sur tout, tu interroges DBA_TAB_COLUMNS

Discussions similaires

  1. Réponses: 29
    Dernier message: 12/01/2018, 18h01
  2. Réponses: 5
    Dernier message: 15/11/2011, 23h42
  3. [MySQL] Recherche d'un mot dans plusieurs tables
    Par mchicha dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 16/02/2010, 11h51
  4. trouver un champ dans plusieurs tables
    Par sdblepas dans le forum Langage SQL
    Réponses: 2
    Dernier message: 09/12/2009, 14h39
  5. Sum de plusieurs champs dans plusieurs tables
    Par Cylc dans le forum Requêtes
    Réponses: 1
    Dernier message: 06/10/2006, 10h13

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