设为首页 加入收藏

TOP

ORACLE的分区表(二)
2014-11-24 02:31:02 来源: 作者: 【 】 浏览:13
Tags:ORACLE 分区表
,

PARTITION ORD_ACT_PART02 VALUES LESS THAN(TO_DATE('01-JUL-2003','DD-MON-YYYY')) TABLESPACE ORD_TS03

)

例三:MAXVALUE

CREATE TABLE RangeTable

(

idd INT PRIMARY KEY ,

iNAME VARCHAR(10),

grade INT

)

PARTITION BY RANGE (grade)

(

PARTITION part1 VALUES LESS THEN (1000) TABLESPACE Part1_tb,

PARTITION part2 VALUES LESS THEN (MAXVALUE) TABLESPACE Part2_tb

);

--hash 分区技术

例一:

CREATE TABLE HASH_TABLE

(

COLNUMBER(8),

INFVARCHAR2(100)

)

PARTITION BY HASH (COL)

(

PARTITION PART01 TABLESPACE HASH_TS01,

PARTITION PART02 TABLESPACE HASH_TS02,

PARTITION PART03 TABLESPACE HASH_TS03

)

简写:

CREATE TABLE emp

(

empno NUMBER (4),

ename VARCHAR2 (30),

sal NUMBER

)

PARTITION BY HASH (empno) PARTITIONS 8

STORE IN(emp1,emp2,emp3,emp4,emp5,emp6,emp7,emp8);

--列表分区技术

例一

CREATE TABLE PROBLEM_TICKETS

(

PROBLEM_ID NUMBER(7) NOT NULLPRIMARY KEY,

DESCRIPTION VARCHAR2(2000),

CUSTOMER_ID NUMBER(7) NOT NULL,

DATE_ENTERED DATE NOT NULL,

STATUS VARCHAR2(20)

)

PARTITION BY LIST (STATUS)

(

PARTITION PROB_ACTIVE VALUES('ACTIVE') TABLESPACE PROB_TS01,

PARTITION PROB_INACTIVE VALUES ('INACTIVE') TABLESPACE PROB_TS02

例二

CREATE TABLE ListTable

(

id INT PRIMARY KEY ,

name VARCHAR (20),

area VARCHAR (10)

)

PARTITION BY LIST (area)

(

PARTITION part1 VALUES('guangdong','beijing') TABLESPACE Part1_tb,

PARTITION part2 VALUES('shanghai','nanjing') TABLESPACE Part2_tb

);

)

--复合分区技术

(1)范围列表分区:

CREATE TABLE SALES

(

PRODUCT_ID VARCHAR2(5),

SALES_DATE DATE,

SALES_COST NUMBER(10),

STATUS VARCHAR2(20)

)

PARTITION BY RANGE(SALES_DATE) SUBPARTITIONBY LIST (STATUS)

(

PARTITION P1 VALUES LESSTHAN(TO_DATE('2003-01-01','YYYY-MM-DD'))TABLESPACE rptfact2009

(

SUBPARTITION P1SUB1 VALUES('ACTIVE') TABLESPACE rptfact2009,

SUBPARTITION P1SUB2 VALUES('INACTIVE') TABLESPACE rptfact2009

),

PARTITION P2 VALUES LESS THAN (TO_DATE('2003-03-01','YYYY-MM-DD'))TABLESPACE rptfact2009

(

SUBPARTITION P2SUB1 VALUES('ACTIVE') TABLESPACE rptfact2009,

SUBPARTITION P2SUB2 VALUES('INACTIVE') TABLESPACE rptfact2009

)

)

(2)范围哈希分区:

create table dinya_test

(

transaction_id number primary key,

item_id number(8) not null,

item_description varchar2(300),

transaction_date date

)

partition byrange(transaction_date)subpartition by hash(transaction_id) subpartitions 3 store in(dinya_space01,dinya_space02,dinya_space03)

(

partition part_01 values less than(to_date(‘2006-01-01’,’yyyy-mm-dd’)),

partition part_02 values less than(to_date(‘2010-01-01’,’yyyy-mm-dd’)),

partition part_03 values less than(maxvalue)

);

--分区表操作

一、添加分区

以下代码给SALES表添加了一个P3分区

ALTER TABLE SALES ADD PARTITION P3 VALUESLESS THAN(TO_DATE('2003-06-01','YYYY-MM-DD'));

注意:以上添加的分区界限应该高于最后一个分区界限。

以下代码给SALES表的P3分区添加了一个P3SUB1子分区

ALTER TABLE SALES MODIFY PARTITION P3 ADDSUBPARTITION P3SUB1 VALUES('COMPLETE');

二、删除分区

以下代码删除了P3表分区:

ALTER TABLE SALES DROP PARTITION P3;

在以下代码删除了P4SUB1子分区:

ALTER TABLE SALES DROP SUBPARTITION P4SUB1;

注意:如果删除的分区是表中唯一的分区,那么此分区将不能被删除,要想删除此分区,必须删除表。

三、截断分区

截断某个分区是指删除某个分区中的数据,并不会删除分区,也不会删除其它分区中的数据。当表中即使只有一个分区时,也可以截断该分区。通过以下代码截断分区:

ALTER TABLE SALES TRUNCATE PARTITION P2;

通过以下代码截断子分区:

ALTER TABLE SALES TRUNCATE SUBPARTITIONP2SUB2;

四、合并分区

合并分区是将相邻的分区合并成一个分区,结果分区将采用较高分区的界

首页 上一页 1 2 3 4 下一页 尾页 2/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇11G怎样编译BBED 下一篇Oracle密码错误次数过多账号锁定..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: