Les partenaires publicitaires:

Comment faire pour obtenir tous les noms de colonnes dans une base de données Oracle

Bases de données Oracle organiser des tables dans des comptes de propriétaires appelés schémas. Utilisateurs de la Base avec différents privilèges pouvez interroger la base de données de métadonnées - appelé le «dictionnaire de données» - à la liste des informations, y compris les noms de colonnes, les autorisations d'objet ou des statistiques de l'objet. Pour obtenir les noms de colonnes de tables ou vues sur un serveur de base de données Oracle, exécutez une courte requête en utilisant l'objet de dictionnaire de données la plus appropriée. La vue USER_TAB_COLS montre des objets appartenant à l'utilisateur connecté, alors que ALL_TAB_COLS montre tous les objets disponibles à l'utilisateur donné ses autorisations et DBA_TAB_COLS montre tout dans la base de données quel que soit le compte utilisateur propriétaire de l'objet.

Instructions

  1. 1

    Exécute une requête SQL standard pour retourner des résultats de la vue, le système le plus approprié. Une requête de base apparaît sous la forme:

    SELECT * FROM USER_TAB_COLS;




    ALL_TAB_COLS substitution ou DBA_TAB_COLS le cas échéant. Le symbole "*" renvoie toutes les colonnes dans la requête.

  2. 2

    Limiter les données renvoyées dans la requête en remplaçant "SELECT *" avec une liste plus ciblée des colonnes de la vue dans le dictionnaire. Pour revenir seulement le schéma, nom de la table et le nom de la colonne pour les objets de la connectés compte peut accéder, de l'utilisation:



    SELECT maitre, nom_table, nom_colonne from ALL_TAB_COLS;

  3. 3

    Restreindre les objets retour en limitant vos résultats avec une clause "where". Par exemple, pour renvoyer uniquement les noms de colonnes pour les tables l'utilisateur connecté en possède et qui commencent par la lettre "A", l'utilisation:

    SELECT * FROM nom_table WHERE USER_TAB_COLS LIKE 'a%';

Conseils Avertissements

  • Les grandes organisations exécutant un serveur de classe entreprise Oracle offrent parfois des interfaces Web vers des dictionnaires de données qui interrogent toutes les colonnes de la table en tant qu'utilisateur anonyme ou le système sans avoir à écrire votre propre requête. Vérifiez auprès d'un administrateur de base de données pour voir si vous avez accès à un tel outil.
  • Oracle propose également ALL_TAB_COLUMNS, USER_TAB_COLUMNS et DBA_TAB_COLUMNS vues. Ces objets diffèrent de ceux se terminant en "COLS" en filtrant certaines colonnes cachées. Dans la plupart des cas, vous obtiendrez les informations dont vous avez besoin, quel que soit mis de vues que vous utilisez.
  • Renvoyer tous les noms de colonnes sur une très grande base de données avec de nombreux objets peut fournir trop d'informations pour être utile. Limiter la portée de votre demande avec une série de filtres de recherche dans votre SQL "where".
  • Pour interroger tout objet de dictionnaire de données avec le préfixe DBA, l'utilisateur connecté en compte doit avoir "sélectionner" les droits à ces points de vue ou ont la SELECT_CATALOG_ROLE Oracle affecté. Dans la plupart des cas, les tables de DBA doivent préciser le schéma préfixe SYS, par exemple, "SELECT * FROM SYS.DBA_TAB_COLS-" ou son équivalent.
» » » » Comment faire pour obtenir tous les noms de colonnes dans une base de données Oracle