createorreplaceprocedure p_rebuild_all_index (tablespace_name invarchar2) as sqlt varchar(200); begin for idx in (select index_name, tablespace_name, status from user_indexes where tablespace_name=tablespace_name and status='VALID'andtemporary='N') loop begin sqlt :='alter index '|| idx.index_name ||' rebuild '; dbms_output.put_line(idx.index_name); dbms_output.put_line(sqlt); EXECUTE IMMEDIATE sqlt; --错误后循环继续执行。 EXCEPTION WHEN OTHERS THEN dbms_output.put_line(SQLERRM); end; end loop; end;