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.
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?
SELECT * FROM user_cons_columns WHERE table_name = 'table_name';