修改表的表空间

来源:互联网 发布:一个手机淘宝注册账号 编辑:程序博客网 时间:2024/05/16 17:04

表做表空间迁移
    alter table tb_name move tablespace tbs_name;

 

索引表空间做迁移

   alter index index_name rebuild tablespace tbs_name;

 

  对于含有lob字段的表,在建立时,oracle会自动为lob字段建立两个单独的segment,一个用来存放数据,另一个用来存放索引,并且它们都会存储在对应表指定的表空间中,上面语句只能移动非lob字段以外的数据,所以在对含有lob字段的表进行空间迁移,需要使用如下语句:

 

  例3alter table tb_name move tablespace tbs_name lob (col_lob1,col_lob2) store as(tablesapce tbs_name);

  项目实例:

  表空间迁移

  select 'alter table' ||table_name|| 'move tablespace tbs_name;' table_name from dba_tables where owner='%***%' and table_name like '%***%'

 

lob字段

  select 'alter table' ||table_name|| 'move lob('||index_name||') store as (tablespace tbs_name);' from dba_indexes where owner='%***%' and index_name like '%***%'

 

索引表空间

  select 'alter index' ||index_name|| 'rebuild tablespace tbs_name;' index_name from dba_indexes where owner='%***%' and table_name like '%***%'

 

  以上在oracle SQL*Plus WorksheetPL/SQL Deverloper中运行,将得出的运行结果再运行一次即可。

使用查询的结果,这样就可以批量处理!

 

原创粉丝点击