This query can be used to recreate existing tables, for example create fact tables locally partitioned:
select 'drop index ' || ui.index_name || '; create ' || case ui.uniqueness when 'UNIQUE' then 'unique' else null end || ' index ' || ui.index_name || ' on ' || ui.table_name || ' ('|| listagg(uic.column_name, ',') within group (order by uic.column_position) ||') local logging tablespace DWH_DM;' from user_indexes ui join user_tables ut on ut.table_name = ui.table_name join user_ind_columns uic on uic.index_name = ui.index_name and uic.table_name = ut.table_name where --ui.index_name like 'F%' --and ui.table_owner = 'DWH_DM' and ui.partitioned = 'NO' --and ui.table_name like 'F_%' and ut.partitioned = 'YES' and ui.index_type = 'NORMAL' group by ui.index_name, ui.uniqueness, ui.table_name order by ui.table_name, ui.index_name ;