Oracle—系统包使用

文章目录

系统包

dbms_redefinition

功能介绍:该包体可以实现将Oracle库下的表在线改为分区结构或者重新定义;

说明:在检查表是否可以重定义和开始重定义的过程中,按照表是否存在主键,参数 options_flag有如下两种选择:

1)dbms_redefinition.cons_use_rowid
2)dbms_redefinition.cons_use_pk

  • step_1:检测是否可以重定义
    exec dbms_redefinition.can_redef_table('schema_name', '$source_tab',dbms_redefinition.cons_use_pk);

  • step_2:重定义表
    exec dbms_redefinition.start_redef_table('schema_name', '$source_tab', '$target_tab',null,dbms_redefinition.cons_use_pk);

  • step_3:同步数据到新表
    execute dbms_redefinition.sync_interim_table('schema_name','$source_tab','$target_tab');

  • step_4:结束表重定义
    exec dbms_redefinition.finish_redef_table('schema_name', '$source_tab', '$target_tab');

  • step_5:强制退出重定义
    exec dbms_redefinition.abort_redef_table('schema_name', '$source_tab', '$target_tab');

验证结论:

A:从模板表到正式表的重新定义,实际是交换了2个表的差异部分;

B:从模板表到正式表的差异交换,包括数据部分,空表变为有数据的表,同样有数据的表会变为空表;

======================================== over ========================================

相关推荐
老虎062711 小时前
数据库基础—SQL语句总结及在开发时
数据库·sql·oracle
Apple_羊先森18 小时前
Oracle数据库操作深入研究:备份、数据删除与性能优化
数据库·oracle·性能优化
好记忆不如烂笔头abc1 天前
另类pdb恢复方式-2
oracle
Menior_2 天前
【补充】数据库中有关系统编码和校验规则的简述
数据库·mysql·oracle
H2122021652 天前
SQLite3库链接与加载问题解决方案
数据库·oracle·sqlite
开航母的李大3 天前
Navicat 全量&增量数据库迁移
数据库·oracle
Apple_羊先森3 天前
Oracle表数据维护全流程指南:备份、删除与性能优化
数据库·oracle·性能优化
汤姆花花3 天前
OCI编程高级篇(八) LOB写操作
oracle·asm·dul·oracle oci 编程
laizhenghua4 天前
解决:[64000][257] ORA-00257: 归档程序错误。只有在解析完成后才以 AS SYSDBA 方式连接问题
oracle
꒰ঌ 安卓开发໒꒱4 天前
SQL Server安全删除数据并释放空间的技术方案
数据库·安全·oracle