2010-06-10 32 views
26

我記下下面的查詢將列表中的索引名和其特定表列數據表,視圖的所有索引和它們的列和同義詞:如何找到在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; 

我想修改這使得如果我通過viewsynonym也可以。我們的系統具有不同的視圖和同義詞,所以如果只有一個查詢可以提供名稱(無論是視圖的同義詞還是表),那麼它就會吐出索引和它們的列。

回答

13

您的查詢應該適用於同義詞以及表格。但是,您似乎期望在沒有的情況下查看索引。也許它是物化視圖?

+0

我會假設他想從一個視圖 – dpbradley 2010-06-10 20:38:28

+1

在這種情況下,相關的表的索引,它可能會非常棘手,但它需要與ALL_DEPENDENCIES既然是爲了工作,可以根據其他視圖,它可能還需要一個分層查詢(CONNECT BY)。 – 2010-06-10 21:01:06

+0

同義詞也可以指向視圖。 – 2010-06-10 23:45:51

0

SELECT * FROM user_cons_columns WHERE table_name = 'table_name';

+2

這僅適用於作爲約束的一部分創建的索引。 – 2014-08-27 23:12:08