ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 学习之应用基础(11)

学习之应用基础(11)

原创 Linux操作系统 作者:simkyo 时间:2013-07-10 11:35:28 0 删除 编辑
 使用在线重定义的一些限制条件:
(1) There must be enough space to hold two copies of the table.
(2) Primary key columns cannot be modified.
(3) Tables must have primary keys.
(4) Redefinition must be done within the same schema.
(5) New columns added cannot be made NOT NULL until after the redefinition operation.
(6) Tables cannot contain LONGs, BFILEs or User Defined Types.
(7) Clustered tables cannot be redefined.
(8) Tables in the SYS or SYSTEM schema cannot be redefined.
(9) Tables with materialized view logs or materialized views defined on them cannot be redefined.
(10) Horizontal sub setting of data cannot be performed during the redefinition.
在Oracle 10.2.0.4和11.1.0.7 版本下,在线重定义可能会遇到如下bug:
       Bug 7007594 - ORA-600 [12261]
       http://blog.csdn.net/tianlesoftware/archive/2011/03/02/6218681.aspx
在线重定义的大致操作流程如下:
       (1)创建基础表A,如果存在,就不需要操作。
       (2)创建临时的分区表B。 (3)开始重定义,将基表A的数据导入临时分区表B。
       (4)结束重定义,此时在DB的 Name Directory里,已经将2个表进行了交换。即此时基表A成了分区表,我们创建的临时分区表B 成了普通表。 此时我们可以删除我们创建的临时表B。它已经是普通表。
下面看一个示例:
1. 创建基本表和索引
sql> create table unpar_table (
  2  id number(10) primary key,
  3  create_date date );
表已创建。
sql> insert into unpar_table select rownum, created from dba_objects;
已创建72288行。
sql> create index create_date_ind on unpar_table(create_date);
索引已创建。
sql> commit;
提交完成。

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

请登录后发表评论 登录
全部评论

注册时间:2013-06-20

  • 博文量
    193
  • 访问量
    136987