非分区表=>分区表(三)

前面已经写了两篇了,今天一高兴在网上又学到一招,其实很简单,就是利用CTAS
大概步骤
1.原表A
2.创建分区表A_NEW(CTAS)
3.将T重命名为A_OLD
4.将A_NEW重命名为A

--表A原来有一条记录

A>select * from a;

        ID
----------
         1

A>create table a_new as select * from a;

Table created.

--现在表A_NEW也有一条记录

A>select * from a_new;

        ID
----------
         1

如果此时向原表A中新插入一条记录,现在表T和T_NEW就不一致了

A>insert into a values(2);

1 row created.

A>select * from a_new;

        ID
----------
         1

A>select * from a;

        ID
----------
         1
         2

A>commit;

Commit complete.

A>rename a to a_old;

Table renamed.

--在两个重命名操作中间,对原表A的访问会失败

A>select * from a;
select * from a
              *
ERROR at line 1:
ORA-00942: table or view does not exist


A>rename a_new to a;

Table renamed.

A>select * from a;

        ID
----------
         1

综上,利用CTAS方式将堆表转换成分区表有两点要注意
1.尽量在闲时操作,以减少数据不一致情况的发生
2.在两个重命名操作中间,对原表的访问会失败

参考:http://edu.21cn.com/oracle/g_50_483124-1.htm

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

转载于:http://blog.itpub.net/29646619/viewspace-1165436/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值