zoukankan      html  css  js  c++  java
  • 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
    create table scott.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 by range(create_date)(
          PARTITION tb_cablecheck_equipment_p1 VALUES LESS THAN (TO_DATE('2013-08-01','YYYY-MM-DD')),
          PARTITION tb_cablecheck_equipment_p2 VALUES LESS THAN(TO_DATE('2016-04-05''YYYY-MM-DD')),
          PARTITION tb_cablecheck_equipment_p3 VALUES LESS THAN(TO_DATE('2016-12-13''YYYY-MM-DD')),
          PARTITION tb_cablecheck_equipment_p4 VALUES LESS 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, TRUETRUETRUETRUE, num_errors);  
    END;

    第四步:同步中间表,保证数据的一致性

    1
    2
    3
    begin
    dbms_redefinition.sync_interim_table('scott','tb_cablecheck_equipment_bak','tb_cablecheck_equipment_bak2');
    end;

    第六步:完成重定义

    1
    2
    3
    begin
    dbms_redefinition.finish_redef_table('scott','tb_cablecheck_equipment_bak','tb_cablecheck_equipment_bak2');
    end;

    查看是否已被定义为分区表:

    1
    select from tb_cablecheck_equipment_bak partition(tb_cablecheck_equipment_p1);

    第七步:

    1
    drop table scott.tb_cablecheck_equipment_bak2;
     
  • 相关阅读:
    [ 打败 IE 的葵花宝典 ] IE6中css常见BUG全集及解决方案
    js获取URl传递的参数
    几种C#框架提供的数据结构对单值查找的效率比较
    C#Hashtable与Dictionary性能
    Sql server 使用存储过程分页显示
    arrayList使用 与 foreach 使用
    LeetCode 047. 全排列 II DFS
    LeetCode 046. 全排列 dfs 和 dfs_swap
    LeetCode 048. 旋转图像
    LeetCode 040. 组合总和 II 非SET去重
  • 原文地址:https://www.cnblogs.com/xyhero/p/56f0774929d6362ef1bb12c9cab6574e.html
Copyright © 2011-2022 走看看