oracle数据库中如何将表移动到另一个表空间

就是将表从一个表空间挪到另一个表空间里

首先,使用下面的命令移动:
alter table table_name move tablespace tablespace_name;
然后,如果有索引的话必须重建索引:
alter index index_name rebuild tablespace tablespace_name;

当然,可以使用spool来帮助实现多个表的操作.
set header off;
spool /export/home/oracle/alter_tables.sql;
select 'alter table ' || object_name || ' move tablespace users'
from dba_object
where owner = 'XXX' and object_type = 'TABLE';
spool off;
之后执行此sql脚本即可.
同样对于index也做同样的操作.
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-01-21
8i以后用alter table tablename move tablespace tbsname;

8i以前用exp导出,然后imp导入时使用indexfile=...,生成转储文件,
然后手工修改表空间名称,最后运行这个脚本文件即可.本回答被提问者和网友采纳
第2个回答  2009-07-30
如何将表移动到指定表空间
ALTER TABLE TABLE_NAME MOVE TABLESPACE_NAME;
如何将索引移动到指定的表空间
ALTER INDEX INDEX_NAME REBUILD TABLESPACE TABLESPACE_NAME;
相似回答