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

Les bases de données Oracle organisent les tables en comptes propriétaires appelés schémas. Les utilisateurs de base de données avec des privilèges variables peuvent interroger les métadonnées de la base de données - appelées "dictionnaire de données" - pour répertorier les informations, y compris les noms de colonnes, les autorisations d'objets ou les statistiques d'objets. Pour obtenir des noms de colonnes à partir de tables ou de vues sur un serveur de base de données Oracle, exécutez une courte requête à l'aide de l'objet de dictionnaire de données le plus approprié. La vue USER_TAB_COLS affiche les objets appartenant à l'utilisateur connecté, tandis que ALL_TAB_COLS affiche tous les objets disponibles pour l'utilisateur compte tenu de ses autorisations et DBA_TAB_COLS affiche tout dans la base de données, quel que soit le compte utilisateur propriétaire de l'objet.

Étape 1

Exécutez une requête SQL standard pour renvoyer les résultats de la vue système la plus appropriée. Une requête basique apparaît sous la forme :

SELECT * FROM USER_TAB_COLS ;

Remplacez ALL_TAB_COLS ou DBA_TAB_COLS selon le cas. Le symbole "*" renvoie toutes les colonnes de la requête.

Étape 2

Limitez les données renvoyées dans la requête en remplaçant "select *" par une liste de colonnes plus ciblée de la vue dictionnaire. Pour renvoyer uniquement le schéma, le nom de la table et le nom de la colonne des objets auxquels le compte connecté peut accéder, utilisez :

SELECT propriétaire, table_name, column_name FROM ALL_TAB_COLS ;

Limitez les objets renvoyés en limitant vos résultats avec une clause "where". Par exemple, pour renvoyer uniquement les noms de colonnes pour les tables que possède l'utilisateur connecté et qui commencent par la lettre « A », utilisez :

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