как найти все индексы и их столбцы для таблиц, представлений и синонимов в Oracle - PullRequest
29 голосов
/ 11 июня 2010

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

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 также это работает.У нашей системы есть варианты представлений, синонимов, поэтому будет очень полезно иметь один запрос, к которому я могу просто указать имя (будь то синоним или таблица представления), и он будет выплевывать индексы и их столбцы.

Ответы [ 2 ]

13 голосов
/ 11 июня 2010

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

0 голосов
/ 27 августа 2014

SELECT * FROM user_cons_columns WHERE table_name = 'table_name';

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...