ORACLE表批量迁移表空间

第一步:将表迁移到目标表空间

 1)使用如下语句,可以将需要移动的表空间语句在pl/sql中列出来,

select 'alter table ' ||table_name || ' move tablespace 目标表空间名称;' from user_all_tables where tablespace_name='源表空间名称'

例如:

登录数据库用户TEST。将TEST所有表从SYSTEM表空间迁移到USERS表空间。

select 'alter table ' ||table_name || ' move tablespace users;' from user_all_tables where tablespace_name='SYSTEM';

将PL/SQL中列出来的语句执行一次,就完成表的迁移。


2)将上面语句的结果拷贝到sql文件1.sql中

第二步:重新生成索引:

1)使用如下语句,生成重新编译索引语句:

SELECT 'alter index ' || index_name || ' rebuild tablespace users;'

  FROM user_indexes

 WHERE index_type = 'NORMAL'

   AND table_owner = 'SDHY_DEV'

   AND dropped = 'NO';

注意:

index_type包括两种类型'NORMAL'为普通表,'LOB'为blob或者clob字段生成的索引,在这里要排除掉

 DROPPED包括YES和NO两种类型,为YES时是废弃的索引

2)将上面语句的结果拷贝到sql文件2.sql中

第三步:批量执行操作:

将第一步与第二步列出的语句放在SQL执行窗口中执行,就可以实现表数据及索引迁移。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29439655/viewspace-1356643/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29439655/viewspace-1356643/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值