Через одно место, конечно, лучше не использовать, оно не учитывает, что в этом ТП может еще что-то лежать, а сколько я не копался - помойки кругом... Но вот, не из яндекса, но не пробовал, правил из аналогичного своего скрипта, попробуй ты:
Код:
set serveroutput on;
begin
for c in (select owner,index_name from dba_indexes where tablespace_name='СТАРОЕ ТП')
Loop
begin
execute immediate
'alter index '||c.owner||'.' || c.index_name || ' rebuild tablespace НОВОЕ ТП';
exception when others then begin
dbms_output.put_line(c.owner||'.' || c.index_name);
end;
end;
end loop;
end;
/
запускать из под SYS в SQL Plus. Кстати, ни мой, ни их скрипт не будет работать, если ты квоту на ТП для supermag не дашь.
Код:
ALTER USER SUPERMAG QUOTA UNLIMITED ON НОВОЕ ТП;
и вообще покопай форум, миллион раз уже писалось про различные переносы. Да, если будут выводиться названия каких-то индексов - пиши сюда (это ошибки). Сервер Супермага должен быть остановлен.
Добавлено через 4 минуты 46 секунд
Я что-то на автомате продолжил, но не увидел, что ты ответил Андрею по поводу того, что у тебя в этом табличном пространстве. Сюрпризы разные бывают, в том числе и появление "посторонних" сегментов в INDX.