您的位置:首页 > 其它

DBMS_REDEFINITION子程序概要

2016-07-04 16:10 162 查看
CAN_REDEF_TABLE 程序:

-----------------------

该程序用于决定将要重新组织的表。这为在线重组织的第一步。如果不指定在线重定义的表,将会有错误产生。

语法

DBMS_REDEFINITION.can_redef_table (

uname IN VARCHAR2,

tname IN VARCHAR2);

CAN_REDEF_TABLE 程序参数:

参数               描述

---------          ------------

uname              表的schema名称

tname              准备重组的表名

 

START_REDEF_TABLE 程序:

------------------------

该程序完成重组织的初始化。在验证了表是否可以在线重组织之后,需要创建一张空的转换表(在同一个schema下)将名称传入其中的属性描述定义表名。

语法

DBMS_REDEFINITION.start_redef_table (

uname IN VARCHAR2,

orig_table IN VARCHAR2,

int_table IN VARCHAR2,

col_mapping IN VARCHAR2 := NULL);

START_REDEF_TABLE 程序参数:

参数               描述

---------          ------------

uname              表的schema名称

orig_table         准备重组的表名

int_table          过度表的名称。

col_mapping        从过度表到原始表,列的映射信息。

                   (类似SELECT查询语句中字段的列表)

                   如果为NULL,原始表中所有的字段都

                   被按原来的名称选择到过度表中

                  

FINISH_REDEF_TABLE 程序:

------------------------

该程序用于完成重组织处理。在这步之前,可能需要在过度表上创建新的索引、触发器、权限分配以及约束。如果有外键约束包含在过度表上,必须disabled。在进行这步时,原始表将被暂时锁住,直到完成。

语法

DBMS_REDEFINITION.finish_redef_table (

uname IN VARCHAR2,

orig_table IN VARCHAR2,

int_table IN VARCHAR2);

FINISH_REDEF_TABLE 程序参数:

参数               描述

---------          ------------

uname               表的schema名称

orig_table          准备重组的表名

int_table           过度表的名称。

SYNC_INTERIM_TABLE 程序:

-------------------------

此程序可以将原始表同步到过度表。此步骤可以在完成重组织之前,最小化地成本不断将数据同步到过度表上。此步骤通常在开始重定义之后,完成之前(如创建索引)调用,用来从原始表上快速地同步新增数据。

语法

DBMS_REDEFINITION.sync_interim_table (

uname IN VARCHAR2,

orig_table IN VARCHAR2,

int_table IN VARCHAR2);

SYNC_INTERIM_TABLE 程序参数:

参数               描述

---------          ------------

uname               表的schema名称

orig_table          准备重组的表名

int_table           过度表的名称。

ABORT_REDEF_TABLE 程序:

-------------------------

该程序用于清除在重组织过程中发生的错误。该程序也可以用于在重组织过程中(start_reorg_table之后,finish_reorg_table之前),随时中断重组织操作。

语法

DBMS_REDEFINITION.abort_redef_table (

uname IN VARCHAR2,

orig_table IN VARCHAR2,

int_table IN VARCHAR2);

ABORT_REDEF_TABLE 程序参数:

参数               描述

---------          ------------

uname               表的schema名称

orig_table          准备重组的表名

int_table           过度表的名称。

如果主键包含的列是一个加密列,可能需要参看下面这个BUG:

参考:Bug 6034260 DBMS_REDEFINITION.START_REDEF_TABLE FAILS ORA-32412 BECAUSE 

OF ENCRYPTED COLUMN
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: