-- este bloco anomimo dropa e recria os índices para corrgir o erro da oracle
-- ORA-08106, que faz referência a essa ação para sanar o problema do índice
-- select * FROM   TOOLS.TB_REBUILD_ANALYZE_LOG WHERE  substr(ds_comando_ddl, 1, 1) <> '*'

declare
CURSOR C_ATUALIZA IS 
       SELECT DS_OWNER, DS_OBJECT_NAME, CL_DDL,
       'DROP INDEX '||DS_OWNER||'.'||DS_OBJECT_NAME COMANDO_DDL_DROP, 
       DBMS_METADATA.GET_DDL('INDEX', DS_OBJECT_NAME, DS_OWNER) COMANDO_DDL_CREATE
       FROM   TOOLS.TB_REBUILD_ANALYZE_LOG
       WHERE  substr(ds_comando_ddl, 1, 1) <> '*'
       AND    cl_log like '%ORA-08106%';

V_ATUALIZA C_ATUALIZA%ROWTYPE;

begin

FOR V_ATUALIZA IN C_ATUALIZA LOOP
    EXECUTE IMMEDIATE V_ATUALIZA.COMANDO_DDL_DROP;
    EXECUTE IMMEDIATE TO_CHAR(V_ATUALIZA.CL_DDL);
    EXECUTE IMMEDIATE 'ANALYZE INDEX '||V_ATUALIZA.DS_OWNER||'.'||V_ATUALIZA.DS_OBJECT_NAME
                      ||' ESTIMATE STATISTICS SAMPLE 45 PERCENT ';
END LOOP;

end;

hostgator