Redefining Tables Online(二)

在线重定义分区表
 
 
 
--赋权限
--调用DBMS_REDEFINITION包需要EXECUTE_CATALOG_ROLE角色,除此之外,
--还需要CREATE ANY TABLE、ALTER ANY TABLE、DROP ANY TABLE、LOCK ANY TABLE和SELECT ANY TABLE的权限。
GRANT CREATE ANY TABLE,ALTER ANY TABLE,DROP ANY TABLE,LOCK ANY TABLE,SELECT ANY TABLE TO JASON;
GRANT EXECUTE ON DBMS_REDEFINITION TO JASON ;
/
DROP TABLE TEST
/
CREATE TABLE TEST (ID NUMBER PRIMARY KEY, TIME DATE);
/
INSERT INTO TEST SELECT ROWNUM, CREATED FROM DBA_OBJECTS;
/
BEGIN
 DBMS_REDEFINITION.CAN_REDEF_TABLE(USER,'TEST',DBMS_REDEFINITION.CONS_USE_PK);
END;
/
CREATE TABLE TEST_NEW (ID NUMBER PRIMARY KEY, TIME DATE) PARTITION BY RANGE (TIME)
 (PARTITION P1 VALUES LESS THAN (TO_DATE('2011-7-1', 'YYYY-MM-DD')),
 PARTITION P2 VALUES LESS THAN (TO_DATE('2011-8-1', 'YYYY-MM-DD')),
 PARTITION P3 VALUES LESS THAN (TO_DATE('2011-9-1', 'YYYY-MM-DD')),
 PARTITION P4 VALUES LESS THAN (MAXVALUE));
/
BEGIN
 DBMS_REDEFINITION.START_REDEF_TABLE(USER,'TEST','TEST_NEW');
END;    
/
BEGIN
   DBMS_REDEFINITION.SYNC_INTERIM_TABLE(USER, 'TEST', 'TEST_NEW');
END;
--现在,将中间表与原始表同步。(仅当要对表 TEST 进行更新时才需要执行该操作。)
/
BEGIN
   DBMS_REDEFINITION.FINISH_REDEF_TABLE(USER, 'TEST', 'TEST_NEW');
END;
/
BEGIN
   DBMS_REDEFINITION.CAN_REDEF_TABLE(USER,'TEST',DBMS_REDEFINITION.CONS_USE_PK);
END;
 
 

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

转载于:http://blog.itpub.net/25323853/viewspace-708913/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值