oracle在线重定义表
select * from tb_cablecheck_equipment_bak e
第一步:验证表是否能被在线重定义
验证是否能按主键重定义(默认,最后一次参数可以不加)
| 1 2 3 4 | begin  --dbms_redefinition.can_redef_table('scott','tb_cablecheck_equipment_bak');  dbms_redefinition.can_redef_table('scott','tb_cablecheck_equipment_bak',dbms_redefinition.cons_use_pk);end; | 
验证是否能按rowid重定义:
| 1 2 3 4 | begin  --dbms_redefinition.can_redef_table('scott','tb_cablecheck_equipment_bak',2);  dbms_redefinition.can_redef_table('scott','tb_cablecheck_equipment_bak',dbms_redefinition.cons_use_rowid);end; | 
第二步:创建中间表
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | createtablescott.tb_cablecheck_equipment_bak2(      equipment_id        NUMBER,      equipment_code      VARCHAR2(100),      equipment_name      VARCHAR2(500),      area_id             NUMBER,      address             VARCHAR2(500),      res_type_id         VARCHAR2(10),      res_type            VARCHAR2(20),      manage_area_id      VARCHAR2(100),      manage_area         VARCHAR2(100),      management_mode     CHAR(10),      isrelated           CHAR(1),      staff_id            VARCHAR2(20),      create_date         DATE,      ischecked           CHAR(20),      check_date          DATE,      operate_staff       NUMBER,      parent_area_id      NUMBER,      grid_id             NUMBER(20),      install_sbid        NUMBER,      install_sbbm        VARCHAR2(100),      install_dzbm        VARCHAR2(100),      longitude           VARCHAR2(50),      latitude            VARCHAR2(50),      station_id          VARCHAR2(50),      update_time         DATE,      check_complete_time DATE)partition byrange(create_date)(      PARTITION tb_cablecheck_equipment_p1 VALUESLESS THAN (TO_DATE('2013-08-01','YYYY-MM-DD')),      PARTITION tb_cablecheck_equipment_p2 VALUESLESS THAN(TO_DATE('2016-04-05', 'YYYY-MM-DD')),      PARTITION tb_cablecheck_equipment_p3 VALUESLESS THAN(TO_DATE('2016-12-13', 'YYYY-MM-DD')),      PARTITION tb_cablecheck_equipment_p4 VALUESLESS THAN(MAXVALUE)); | 
第三步:开始进行重定义
| 1 2 3 | begin  dbms_redefinition.start_redef_table('scott','tb_cablecheck_equipment_bak','tb_cablecheck_equipment_bak2',null,2);end; | 
复制依赖对象
| 1 2 3 4 5 6 | DECLARE  num_errors PLS_INTEGER;  BEGIN  DBMS_REDEFINITION.COPY_TABLE_DEPENDENTS('SCOTT', 'tb_cablecheck_equipment_bak','tb_cablecheck_equipment_bak2',    DBMS_REDEFINITION.CONS_ORIG_PARAMS, TRUE, TRUE, TRUE, TRUE, num_errors);  END; | 
第四步:同步中间表,保证数据的一致性
| 1 2 3 | begindbms_redefinition.sync_interim_table('scott','tb_cablecheck_equipment_bak','tb_cablecheck_equipment_bak2');end; | 
第六步:完成重定义
| 1 2 3 | begindbms_redefinition.finish_redef_table('scott','tb_cablecheck_equipment_bak','tb_cablecheck_equipment_bak2');end; | 
查看是否已被定义为分区表:
| 1 | select* fromtb_cablecheck_equipment_bak partition(tb_cablecheck_equipment_p1); | 
第七步:
| 1 | droptablescott.tb_cablecheck_equipment_bak2; | 
    
--------------------迷人的分割线-------------------- 
作者:架构师小跟班
开发者导航: http://www.codernav.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
如果文中有什么错误,欢迎指出,以免更多的人被误导。
作者:架构师小跟班
开发者导航: http://www.codernav.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
如果文中有什么错误,欢迎指出,以免更多的人被误导。
 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号