Dashboard > СУБД > Home > Oracle, перемещение партиционированной таблицы > Просмотр
  СУБД Вход | Зарегистрироваться   Вариант для печати.  
  Oracle, перемещение партиционированной таблицы
Добавил(а) shixaro, последний раз редактировал(а) shixaro Jan 10, 2012  (посмотреть изменения)
Метки: 

Так как партиционированную таблицу нельзя перенести простым запросом:

alter table my_table move tablespace my_tablespace

, а нужно переносить отдельно каждую партицию таблицы, ибо они представляют собой отдельные сущности, то можно использовать достаточно простой SQL-блок для этой операции. Если партиций несколько, то можно для каждой написать запрос руками:

alter table my_table move partition my_table_p001 tablespace my_tablespace; 

А если их десятки или сотни?

begin
 for rec in ( select table_owner, table_name, partition_name from dba_tab_partitions where table_name='my_table' ) 
 loop
   execute immediate 'alter table '||rec.table_owner||'.'||rec.table_name||' move partition '||rec.partition_name||' tablespace my_tablespace';
 end loop;
end;

Powered by Atlassian Confluence, the Enterprise Wiki. (Version: 2.5 Build:#805 Apr 26, 2007) - Запрос Bug/feature - Связаться с администраторами