ITPub博客

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

学习之应用基础(10)

原创 Linux操作系统 作者:simkyo 时间:2013-07-10 11:28:41 0 删除 编辑
SQL> insert into p_dba values(999999,to_date('2012-12-29','yyyy-mm-dd'));
insert into p_dba values(999999,to_date('2012-12-29','yyyy-mm-dd'))
            *
第 1 行出现错误:
ORA-14400: 插入的分区关键字未映射到任何分区
SQL> insert into p_dba values(999999,to_date('2009-12-29','yyyy-mm-dd'));
已创建 1 行。
SQL> select * from p_dba where id=999999;
        ID TIME
---------- --------------
    999999 29-12月-09
SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
会话已更改。
SQL> select * from p_dba where id=999999;
        ID TIME
---------- -------------------
    999999 2009-12-29 00:00:00
通过这个测试可以清楚,如果插入的数据不满足分区规则,会报ORA-14400错误。
2.3 . 使用在线重定义:DBMS_REDEFINITION
       在线重定义能保证数据的一致性,在大部分时间内,表都可以正常进行DML操作。只在切换的瞬间锁表,具有很高的可用性。这种方法具有很强的灵活性,对各种不同的需要都能满足。而且,可以在切换前进行相应的授权并建立各种约束,可以做到切换完成后不再需要任何额外的管理操作。
关于DBMS_REDEFINITION的介绍,参考官方连接:
      http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14258/d_redefi.htm#CBBFDJBC
关于用在线重定义创建分区表,参考:
       How To Partition Existing Table Using DBMS_Redefinition [ID 472449.1]
       http://blog.csdn.net/tianlesoftware/archive/2011/03/02/6218693.aspx      
这个功能只在9.2.0.4以后的版本才有,在线重定义表具有以下功能:
 (1)修改表的存储参数;(2)将表转移到其他表空间;(3)增加并行查询选项;(4)增加或删除分区;
 (5)重建表以减少碎片;(6)将堆表改为索引组织表或相反的操作;  (7)增加或删除一个列。

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

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

注册时间:2013-06-20

  • 博文量
    193
  • 访问量
    165517