Nous avons une grande base de données Oracle avec de nombreuses tables. Existe-t-il un moyen d'interroger ou de rechercher s'il existe des tables avec certains noms de colonnes?
IE montre-moi toutes les tables qui ont les colonnes: id, fname, lname, address
Détail que j'ai oublié d'ajouter: je dois pouvoir rechercher dans différents schémas. Celui que je dois utiliser pour me connecter ne possède pas les tables que je dois parcourir.
column_name
+like
si vous n'êtes pas sûr du nom exact:select owner, table_name, column_name from all_tab_columns where column_name like 'someField%';
Les données souhaitées se trouvent dans le tableau de métadonnées "cols":
Celui-ci vous donnera une liste de tables contenant toutes les colonnes souhaitées:
Pour ce faire dans un schéma différent, spécifiez simplement le schéma devant la table, comme dans
Si vous souhaitez combiner les recherches de nombreux schémas en un seul résultat de sortie, vous pouvez le faire:
la source
SELECT * FROM COLS
ne renvoie rien de mon schéma. Je n'ai que certains privilèges sur les tables. La sélection ne suffirait-elle pas pour me permettre de l'afficher via COLS?select * from schema1.cols
me donne unetable or view does not exist
erreur. Cela aurait-il à voir avec la façon dont les privilèges sont établis?Pour rechercher un nom de colonne, utilisez la requête ci-dessous si vous connaissez le nom de colonne avec précision:
Pour rechercher un nom de colonne si vous ne connaissez pas la colonne précise, utilisez ci-dessous:
la source
En voici un que nous avons sauvegardé dans findcol.sql afin que nous puissions l'exécuter facilement à partir de SQLPlus
la source