select table_owner,table_name,index_owner,index_name,substr(SYS_CONNECT_BY_PATH(column_name, ','),2) column_name_list
from (select index_owner, index_name, table_owner, table_name, column_name,count(1) OVER ( partition by index_owner, index_name) cnt,
ROW_NUMBER () OVER ( partition by index_owner, index_name order by column_position) as seq
from sys.dba_ind_columns
where index_owner not in ('SYS', 'SYSTEM'))
where seq=cnt
start with seq=1
connect by prior seq+1=seq
and prior index_owner=index_owner
and prior index_name=index_name
评论已关闭