您的位置:首页 > 数据库 > Oracle

[bbk2901] 第57集 - Chapter 14-Using Oracle Dasta Storage Structures Efficiently(03)

2013-05-09 16:46 447 查看

Partitioning Methods

The following partitioning methods are available:

Range

Hash

List

Composite

insert into data to RANGE1

INSERT INTO RANGE1 VALUES(to_date('09/05/2013','dd/mm/yyyy'),'arcerzhang test date');
INSERT INTO RANGE1 VALUES(to_date('09/05/2014','dd/mm/yyyy'),'arcerzhang test date');
INSERT INTO RANGE1 VALUES(to_date('09/05/2015','dd/mm/yyyy'),'arcerzhang test date');
INSERT INTO RANGE1 VALUES(to_date('09/05/2016','dd/mm/yyyy'),'arcerzhang test date');
1 row created.

1 row created.

1 row created.

1 row created.

SQL> commit;

Commit complete.

SQL> select * from range1;

RK                 DATA
------------------ --------------------
09-MAY-13          arcerzhang test date
09-MAY-14          arcerzhang test date
09-MAY-15          arcerzhang test date
09-MAY-16          arcerzhang test date

SQL> select * from range1 partition(p1);

RK                 DATA
------------------ --------------------
09-MAY-13          arcerzhang test date

SQL> select * from range1 partition(p2);

RK                 DATA
------------------ --------------------
09-MAY-14          arcerzhang test date

SQL> select * from range1 partition(p3);

RK                 DATA
------------------ --------------------
09-MAY-15          arcerzhang test date

SQL> select * from range1 partition(p4);

RK                 DATA
------------------ --------------------
09-MAY-16          arcerzhang test date


以上数据插入都符合条件限制,如果插入一条大于01/01/2017的数据,将会报错,如下:

SQL> INSERT INTO RANGE1 VALUES(to_date('09/05/2017','dd/mm/yyyy'),'arcerzhang test date');
INSERT INTO RANGE1 VALUES(to_date('09/05/2017','dd/mm/yyyy'),'arcerzhang test date')
*
ERROR at line 1:
ORA-14400: inserted partition key does not map to any partition


解决办法:

1、创建一个表空间,用于存放不在分区部分之内的数据

SQL> CREATE TABLESPACE TS4 DATAFILE '/RealData/oradata/DATACENTER/ts4_01.dbf' SIZE 200M
2  EXTENT MANAGEMENT LOCAL UNIFORM
3  SEGMENT SPACE MANAGEMENT AUTO;

Tablespace created.

SQL> select tablespace_name,contents from dba_tablespaces;

TABLESPACE_NAME                CONTENTS
------------------------------ ---------
SYSTEM                         PERMANENT
SYSAUX                         PERMANENT
UNDOTBS1                       UNDO
TEMP                           TEMPORARY
USERS                          PERMANENT
EXAMPLE                        PERMANENT
TAB_U2                         PERMANENT
TAB_U3                         PERMANENT
TS0                            PERMANENT
TS1                            PERMANENT
TS2                            PERMANENT

TABLESPACE_NAME                CONTENTS
------------------------------ ---------
TS3                            PERMANENT
TS4                            PERMANENT

13 rows selected.


2、重新插入上述非法数据

SQL> cl@pt_range_03.sql

Table altered.

SQL> INSERT INTO RANGE1 VALUES(to_date('09/05/2017','dd/mm/yyyy'),'arcerzhang test date');

1 row created.

SQL> commit;

Commit complete

SQL> select * from range1 partition(p1);

RK                 DATA
------------------ --------------------
09-MAY-13          arcerzhang test date

SQL> select * from range1 partition(p2);

RK                 DATA
------------------ --------------------
09-MAY-14          arcerzhang test date

SQL> select * from range1 partition(p3);

RK                 DATA
------------------ --------------------
09-MAY-15          arcerzhang test date

SQL> select * from range1 partition(p4);

RK                 DATA
------------------ --------------------
09-MAY-16          arcerzhang test date

SQL> select * from range1 partition(p5);

RK                 DATA
------------------ --------------------
09-MAY-17          arcerzhang test date

SQL> INSERT INTO RANGE1 VALUES(to_date('09/05/2099','dd/mm/yyyy'),'arcerzhang test date');

1 row created.

SQL> commit;

Commit complete.

SQL> select * from range1 partition(p5);

RK                 DATA
------------------ --------------------
09-MAY-17          arcerzhang test date
09-MAY-99          arcerzhang test date








Partitioning Table相关资料

<<tom 大师书籍第13章 Partitioning>>

<<VLDB and Partitioning Guide>>VLDB->Very Large Database
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: