日期:2014-05-17  浏览次数:20892 次

[Oracle]如何将表空间A下的用户切换到表空间B
因为建用户的时候没有指定表空间,现在都跑了一段时间数据了。想把System表空间下的用户切换到users下面,包含该用户下的所有表、索引和数据等。

烦请各位大虾指点,谢谢了先。

------解决方案--------------------
自己写批处理生成如下语句:

alter table table1 move tablespace users;
alter index index1 rebuild tablepsace users;
alter user  user1 default tablespace users;

例如 :
select 'alter table ' 
------解决方案--------------------
 table_name 
------解决方案--------------------
 ' move tablespace users;' from user_tables where tablespace_name='SYSTEM';


------解决方案--------------------
导入导出功能
例如将数据库中system用户的表导出
exp system/manager@TEST file=d:\daochu.dmp tables=(table1,table2) 
注:如果用exp system/manager@TEST file=d:\daochu.dmp owner=(system),会将所有是system用户的表都导出,所以还是一个表一个表的写吧!
接着导入到user用户表
imp user/test@TEST fromuser=system touser=user file=d:\daochu.dmp,就可以了