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

来源:百度知道 编辑:UC知道 时间:2024/05/21 02:27:14
就是将表从一个表空间挪到另一个表空间里

首先,使用下面的命令移动:
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也做同样的操作.

8i以后用alter table tablename move tablespace tbsname;

8i以前用exp导出,然后imp导入时使用indexfile=...,生成转储文件,
然后手工修改表空间名称,最后运行这个脚本文件即可.

如何将表移动到指定表空间
ALTER TABLE TABLE_NAME MOVE TABLESPACE_NAME;
如何将索引移动到指定的表空间
ALTER INDEX INDEX_NAME REBUILD TABLESPACE TABLESPACE_NAME;