Подтвердить что ты не робот

Как найти все индексы и их столбцы для таблиц, представлений и синонимов в oracle

Я записал следующий запрос, в котором будет указано имя индекса и его столбцы для конкретной таблицы:

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;

Я хочу изменить это, так что если я пройду через view или synonym, он также будет работать. Наша система имеет вариации представлений, синонимов, поэтому очень полезно иметь один запрос, к которому я могу просто указать имя (будь то синоним представления или таблица), и он будет выплевывать индексы и их столбцы.

4b9b3361

Ответ 1

Ваш запрос должен работать как для синонимов, так и для таблиц. Однако, похоже, вы ожидаете индексов на представлениях, где их нет. Может быть, это материализованные взгляды?

Ответ 2

SELECT * FROM user_cons_columns WHERE table_name = 'table_name';