第一步:将表迁移到目标表空间
1)使用如下语句,可以将需要移动的表空间语句在pl/sql中列出来,
select 'alter table ' ||table_name || ' move tablespace 目标表空间名称;' from user_all_tables where tablespace_name='源表空间名称'
2)将上面语句的结果拷贝到sql文件1.sql中
第二步:重新生成索引:
1)使用如下语句,生成重新编译索引语句:
select 'alter index ' ||index_name || ' rebuild tablespace RISENET;' from user_indexes
where index_type='NORMAL' and TABLE_OWNER='RISENET' AND DROPPED='NO'
注意:
index_type包括两种类型'NORMAL'为普通表,'LOB'为blob或者clob字段生成的索引,在这里要排除掉
DROPPED包括YES和NO两种类型,为YES时是废弃的索引
2)将上面语句的结果拷贝到sql文件2.sql中
第三步:批量执行操作:
1)在pl/sql中Tools-->Import tables-->SQL Inserts分别选中1.sql,2.sql执行操作
备注:
本来想用rebuild index来重新生成索引,但一直执行,不能中断,注意:重新生成索引时,需要将临时表空间扩大,一般为原索引的2倍,否则会出错