Как перестроить все индексы, которые есть в заданой таблице БД

Как перестроить все индексы, которые есть в таблице БД?

Так можно какой-то один:

ALTER INDEX index_name REBUILD;

А как все?


Ответы (1 шт):

Автор решения: 0xdb
create table t1 (
    id number primary key, code varchar2 (4) unique, codelong varchar2 (16) unique);

begin
    <<foreachIndex>> for r in (
        select index_name 
        from user_indexes 
        where  table_name='T1'
        ) loop
        execute immediate 'alter index '||r.index_name||' rebuild';
        dbms_output.put_line ('Index '||r.index_name||' rebuilded successfully.'); 
    end loop foreachIndex;
end;
/

Результат:

Index SYS_C008174 rebuilded successfully.
Index SYS_C008175 rebuilded successfully.
Index SYS_C008176 rebuilded successfully.
→ Ссылка