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 ========================================

相关推荐
Irene19911 小时前
Oracle 连接避坑指南:环境+配置+账号
数据库·oracle
鹿鸣天涯2 小时前
应急响应:MySQL日志分析
mysql·安全·adb·oracle
仙宇觉尘1 天前
记一次 .NET 某中医药附属医院门诊系统 崩溃分析
数据库·oracle·.net
NineData1 天前
Oracle 长事务正在消耗 undo 空间,ChatDBA 能提前发现
数据库·sql·oracle·agent·ninedata·回滚·长事务
番茄你个西红41 天前
KingbaseES(Oracle兼容模式)LIKE前缀匹配 COLLATE _C_ 索引优化
c语言·数据库·oracle
oradh2 天前
Oracle 11g rac IP地址修改(public ip、vip、scan ip、priviate ip)
数据库·tcp/ip·oracle·rac ip地址修改
han_hanker2 天前
sql语法 DECODE, CASE ... WHEN
数据库·sql·oracle
曹牧2 天前
Oracle:SELECT * FROM TABLE(...)
oracle
幸福在路上wellbeing2 天前
AI 智能体开发 · Day 3 详细学习手册
人工智能·学习·oracle
天天进步一点点3 天前
QSqlQuery删除sqlite数据库执行drop数据表报错database table is locked unable to fetch row问题
数据库·oracle·sqlite