根据所要生成的条件提取创建索引的语句。
SELECT 'create index '||index_name ||' on '||table_name || ' ( ' || ltrim(MAX(sys_connect_by_path(column_name , ',')) , ',') ||' )
---------------- 表空间
tablespace TSIDX
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 3M
minextents 1
maxextents unlimited
);' column_name
FROM (SELECT index_name,table_name, column_name,
row_number() over(PARTITION BY index_name,table_name ORDER BY index_name,table_name) rn ,
rownum prn
FROM sys.all_ind_columns
---------------------------------- 数据库名称
where index_owner = 'V7DCS_FY'
------------------------------------- 索引名称
and index_name like 'IX%')
START WITH rn = 1
CONNECT BY prn - 1 = PRIOR prn AND table_name = PRIOR table_name
GROUP BY index_name,table_name
ORDER BY index_name,table_name;