Query to show all indexes, its characteristics and respective columns from a table.
Note: It does not filter on owner.
select c.index_name, c.table_name||'('||listagg(column_name,',') within group (order by column_position)||')' as columns, decode(status,'VALID',null,status||' ') ||decode(visibility,'VISIBLE',null,visibility||' ') ||decode(segment_created,'YES',null,'EMPTY ') ||decode(uniqueness,'NONUNIQUE',null,uniqueness||' ') ||funcidx_status as STATUS from dba_ind_columns c, dba_indexes i where i.table_name=c.table_name and i.index_name=c.index_name and c.table_name='&TABLE_NAME' group by c.table_name,c.index_name,i.status,visibility, segment_created,uniqueness,funcidx_status order by c.table_name,c.index_name;
Example of output:
INDEX_NAME COLUMNS STATUS ------------------------------ --------------------------------------- ---------- IDX_LIB_VERSION_PROFILE_ID LIB_VERSION(PROFILE_ID) INX_LIB_VERSION_SRC LIB_VERSION(DATA_RESOURCE,SOURCE) LIB_VERSION_NAME_IDX LIB_VERSION(VERSION_NAME) LIB_VERSION_PK LIB_VERSION(ID) UNIQUE LIB_VERSION_UK1 LIB_VERSION(PROFILE_ID,VERSION_NAME) UNIQUE