oracle9i中如何将一个表空间的数据转移到另一个表空间中

时间:2022-05-10 12:16:45
现在oracle9i中有2个表空间
源表空间tablespace_A和目标表空间tablespace_B
现在要将tablespace_A中的一些表导到tablespace_B中应该怎么做呢?

7 个解决方案

#1


例如,想把表t1从tablespace_A移到tablespace_B,

只需
alter table t1 move tablespace tablespace_B;

#2


如果是单张的表,可以按照楼上的来处理
如果表很多,需要批量转换
1、可以利用数据字典,生成批量的alter table脚本,然后取出执行之
SELECT 'alter table ' || t.TABLE_NAME || ' move tablespace tbs_b;' FROM user_tables t;
2、可以通过exp,imp方式来转换表空间,注意导入时要把新用户在原表空间的权限去掉。

#3


这样alter只是把tablespace的名字改了一下吧 数据也到tablespace_B里面去了吗?

#4


引用 3 楼 hxj1225 的回复:
这样alter只是把tablespace的名字改了一下吧 数据也到tablespace_B里面去了吗?


是的,已经移到表空间B了

#5


接分...........

#6


引用 2 楼 tangren 的回复:
如果是单张的表,可以按照楼上的来处理
如果表很多,需要批量转换
1、可以利用数据字典,生成批量的alter table脚本,然后取出执行之
SELECT 'alter table ' || t.TABLE_NAME || ' move tablespace tbs_b;' FROM user_tables t;
2、可以通过exp,imp方式来转换表空间,注意导入时要把新用户在原表空间的权……


同意二楼的方法

#7


该回复于2010-04-30 16:05:28被版主删除

#1


例如,想把表t1从tablespace_A移到tablespace_B,

只需
alter table t1 move tablespace tablespace_B;

#2


如果是单张的表,可以按照楼上的来处理
如果表很多,需要批量转换
1、可以利用数据字典,生成批量的alter table脚本,然后取出执行之
SELECT 'alter table ' || t.TABLE_NAME || ' move tablespace tbs_b;' FROM user_tables t;
2、可以通过exp,imp方式来转换表空间,注意导入时要把新用户在原表空间的权限去掉。

#3


这样alter只是把tablespace的名字改了一下吧 数据也到tablespace_B里面去了吗?

#4


引用 3 楼 hxj1225 的回复:
这样alter只是把tablespace的名字改了一下吧 数据也到tablespace_B里面去了吗?


是的,已经移到表空间B了

#5


接分...........

#6


引用 2 楼 tangren 的回复:
如果是单张的表,可以按照楼上的来处理
如果表很多,需要批量转换
1、可以利用数据字典,生成批量的alter table脚本,然后取出执行之
SELECT 'alter table ' || t.TABLE_NAME || ' move tablespace tbs_b;' FROM user_tables t;
2、可以通过exp,imp方式来转换表空间,注意导入时要把新用户在原表空间的权……


同意二楼的方法

#7


该回复于2010-04-30 16:05:28被版主删除