dbms_redefinition 表的在线重定义


1,  DDL
 
2,   Call dbms_redefinition.can_redef_table(),check out INCIDENTSM1 can be redefined online
exec dbms_redefinition.can_redef_table('SC','INCIDENTSM1',dbms_redefinition.cons_use_pk);
 
3,   Create an interim table under the same schema
INCIDENTSM1_create_table.sql
 
4,  Create triggers,indexes and constraints on the interim table
select INDEX_NAME,TABLE_NAME,COLUMN_NAME from dba_ind_columns where TABLE_NAME='INCIDENTSM1' order by 1;
select owner,index_name,table_owner,table_name,INCLUDE_COLUMN from dba_indexes where table_name='INCIDENTSM1';
select owner,CONSTRAINT_NAME,CONSTRAINT_TYPE,TABLE_NAME from dba_constraints where table_name = 'INCIDENTSM1';
select owner,TRIGGER_NAME,TRIGGER_TYPE,TABLE_OWNER,TABLE_NAME from dba_triggers where  TABLE_NAME='INCIDENTSM1';
no rows selected
create index : INCIDENTSM1_create_index.sql

5. Call dbms_redefinition.start_redef_table(),begin redefinition
exec dbms_redefinition.start_redef_table('SC','INCIDENTSM1','INCIDENTSM1_LG',NULL,dbms_redefinition.cons_use_rowid,NULL,NULL);
If START_REDEF_TABLE fails for any reason, you must call ABORT_REDEF_TABLE, otherwise subsequent attempts to redefine the table will fail.
DBMS_REDEFINITION.ABORT_REDEF_TABLE(('SC','INCIDENTSM1','INCIDENTSM1_LG',NULL);
 
6. Synchronize interim table
exec dbms_redefinition.sync_interim_table('SC', 'INCIDENTSM1', 'INCIDENTSM1_LG',NULL);

7. Copy all dependent objects of the original table to interim table
DBMS_REDEFINITION.COPY_TABLE_DEPENDENTS('SC','INCIDENTSM1','INCIDENTSM1_LG',0,TRUE,TRUE,TRUE,TRUE,TRUE);
DBMS_REDEFINITION.REGISTER_DEPEPENDENT_OBJECT('SC','INCIDENTSM1','INCIDENTSM1_LG',DBMS_REDEFINITION.CONS_INDEX,'SC','APPROVALLOGM1_2','APPROVALLOGM1_2_LG');
DBMS_REDEFINITION.REGISTER_DEPEPENDENT_OBJECT('SC','INCIDENTSM1','INCIDENTSM1_LG',DBMS_REDEFINITION.CONS_INDEX,'SC','APPROVALLOGM1_P','APPROVALLOGM1_P_LG');
 
8. Call dbms_redefinition.finish_redef_table(), finishe redefinition
exec dbms_redefinition.finish_redef_table('SC','INCIDENTSM1','INCIDENTSM1_LG');

#. Verify

9. Drop interim table
drop table INCIDENTSM1_LG ;

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

转载于:http://blog.itpub.net/11976525/viewspace-668629/

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值