web-dev-qa-db-fra.com

comment trouver tous les index et leurs colonnes pour les tables, les vues et les synonymes dans oracle

J'ai noté la requête suivante qui listera le nom de l'index et ses colonnes pour une table particulière:

select 
b.uniqueness, a.index_name, a.table_name, a.column_name 
from all_ind_columns a, all_indexes b
where a.index_name=b.index_name 
and a.table_name = upper('table_name')
order by a.table_name, a.index_name, a.column_position;

Je veux modifier ceci de sorte que si je transmets une view ou synonym aussi cela fonctionne. Notre système a des variantes de vues, des synonymes, il sera donc très utile d’avoir une requête à laquelle je peux simplement fournir le nom (synonyme de vue ou table) et qui cracherait les index et leurs colonnes. 

29
john

Votre requête devrait fonctionner pour les synonymes ainsi que pour les tables. Cependant, vous semblez vous attendre à des index sur les vues où il n'y en a pas. Peut-être est-ce des vues matérialisées?

13
N. Gasparotto

SELECT * FROM user_cons_columns WHERE table_name = 'table_name';

0
Bala Kumar