interval 表分区重命名

(1)移动分区表的分区:从users表空间移动到dynamic_ts表空间
begin
  for i in (select t.table_name,t.partition_name,t.tablespace_name  from user_tab_partitions t) loop
      if lower(i.tablespace_name) <> 'dynamic_ts' then
      execute immediate 'alter table ' || i.table_name  || ' move partition ' || i.partition_name  || ' tablespace dynamic_ts';
      end if;
end loop;
end;

(2)修改分区表的默认表空间:
SQL>select   def_tablespace_name from user_part_tables;
users

SQL> alter table log_info modify default attributes tablespace dynamic_ts;

SQL>select   def_tablespace_name from user_part_tables;
dynamic_ts

如果不修改默认表空间,下次间隔分区新增加的分区还是在以前的分区上。

这样再次增加分区的时候,分区就在新的默认表空间上增加分区了。
如果是间隔分区,不能用户手工添加分区。

如果分区表类型不是间隔分区,而是手工增加的分区。增加分区的时候如果不指定分区所在表空间,则分区使用分区表的默认表空间作为分区的表空间。

在分区表的默认的表空间增加分区:
SQL >alter table test_part  add partition test_part03 values less than (to_date('2014-01-01','yyyy-mm-dd'));

在增加分区的时候制定表空间:
SQL> alter table test_part add partition test_part03 values less than (to_date('2014-01-01','yyyy-mm-dd'))
tablespace xxxxxx ; 

请使用浏览器的分享功能分享到微信等