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, TRUE , TRUE , TRUE , TRUE , 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; |
--------------------迷人的分割线--------------------
作者:架构师小跟班
开发者导航: http://www.codernav.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
如果文中有什么错误,欢迎指出,以免更多的人被误导。
作者:架构师小跟班
开发者导航: http://www.codernav.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
如果文中有什么错误,欢迎指出,以免更多的人被误导。