暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

在线从定义表实施步骤

原创 sdy337969667 2021-04-06
544

–检查能否通过主键重定义:
EXEC DBMS_REDEFINITION.CAN_REDEF_TABLE(‘RPT’, ‘RPT_CSUM_INV_SNP’, DBMS_REDEFINITION.CONS_USE_PK);
–获取建表语句:
select dbms_metadata.get_ddl(‘TABLE’,‘表名’,‘用户名’) from dual;
select dbms_metadata.get_ddl(‘TABLE’,‘RPT_CSUM_INV_SNP’,‘RPT’) from dual;
–创建临时表:

–调用dbms_redefinition包执行表的在线重定义:
EXEC DBMS_REDEFINITION.start_redef_table(‘RPT’,‘RPT_CSUM_INV_SNP’,‘RPT_CSUM_INV_SNP1’);
如果执行失败,需要回退:
EXEC dbms_redefinition.abort_redef_table(‘RPT’,‘RPT_CSUM_INV_SNP’,‘RPT_CSUM_INV_SNP1’);
–复制依赖对象:
DECLARE
num_errors PLS_INTEGER;
BEGIN
DBMS_REDEFINITION.COPY_TABLE_DEPENDENTS(‘RPT’, ‘RPT_CSUM_INV_SNP’,‘RPT_CSUM_INV_SNP1’, DBMS_REDEFINITION.CONS_ORIG_PARAMS, TRUE, TRUE, TRUE, TRUE, num_errors);
END;
–同步中间表,保证数据的一致性:
begin
dbms_redefinition.sync_interim_table(‘RPT’,‘RPT_CSUM_INV_SNP’,‘RPT_CSUM_INV_SNP1’);
end;
–完成重定义
begin
dbms_redefinition.finish_redef_table(‘RPT’,‘RPT_CSUM_INV_SNP’,‘RPT_CSUM_INV_SNP1’);
end;
–检查源表是否重定义成功
–删除临时表:
drop table RPT.RPT_CSUM_INV_SNP1;

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论