您的位置:首页 > 数据库

oralce,创建分区,子分区表,分区索引,查询分区对应的数据sql

2017-12-07 16:56 459 查看
--创建分区表,带默认子分区

--DROP TABLE SA.BUSTB_TESTRESULT;

CREATE table SA.BUSTB_TESTRESULT

(

  SUMMAR_ID     NUMBER,

  ITEM_ID       NUMBER,

  VALUE         VARCHAR2(400),

  RESULT        VARCHAR2(20),

  TESTSTARTTIME TIMESTAMP(6),

  PROJECT_ID    NUMBER,

  FAILMESSAGE   VARCHAR2(1000),

  ERRORMESSAGE  VARCHAR2(1000),

  SPENDTIME     NUMBER

)

tablespace XDCDATA

PARTITION BY RANGE("TESTSTARTTIME") SUBPARTITION BY LIST ("PROJECT_ID")



          PARTITION RESULT_PART_201401 VALUES LESS THAN(TIMESTAMP' 2014-02-01 00:00:00')TABLESPACE XDCDATA           

          ( 

                SUBPARTITION RESULT_PART_201401_0 VALUES (0) TABLESPACE XDCDATA     

          )

);

--添加分区

ALTER table BUSTB_TESTRESULT ADD PARTITION RESULT_PART_201402 values less than (TIMESTAMP' 2014-03-01 00:00:00')

    tablespace XDCDATA (SUBPARTITION RESULT_PART_201402_0 VALUES (0) tablespace XDCDATA);

ALTER table BUSTB_TESTRESULT ADD PARTITION RESULT_PART_201403 values less than (TIMESTAMP' 2014-04-01 00:00:00')

    tablespace XDCDATA (SUBPARTITION RESULT_PART_201403_0 VALUES (0) tablespace XDCDATA);

ALTER TABLE BUSTB_TESTRESULT ADD PARTITION RESULT_PART_201411 VALUES LESS THAN (TIMESTAMP' 2014-12-01 00:00:00')

    TABLESPACE XDCDATA (SUBPARTITION RESULT_PART_201411_61 VALUES (61) TABLESPACE XDCDATA);

--添加子分区

ALTER TABLE BUSTB_TESTRESULT MODIFY PARTITION RESULT_PART_201411 ADD SUBPARTITION  RESULT_PART_201411_62 VALUES (62);

--创建分区索引

--DROP INDEX SA.BUSTB_TESTRESULT_IDX1;

CREATE INDEX SA.BUSTB_TESTRESULT_IDX1 ON SA.BUSTB_TESTRESULT (SUMMAR_ID, ITEM_ID) TABLESPACE XDCIDX LOCAL

(

PARTITION "RESULT_PART_201401" TABLESPACE "XDCIDX",

PARTITION "RESULT_PART_201402" TABLESPACE "XDCIDX",

PARTITION "RESULT_PART_201403" TABLESPACE "XDCIDX",

PARTITION "RESULT_PART_201411" TABLESPACE "XDCIDX"

);

--数量要和表分区数一致,否则会报错

 LOCAL 索引的分区数必须等于基础表的分区数

--查询分区,子分区对应的数据,

SELECT * FROM BUSTB_TESTRESULT  PARTITION(RESULT_PART_201411);

SELECT * FROM BUSTB_TESTRESULT  SUBPARTITION(RESULT_PART_201411_61); 

SELECT * FROM BUSTB_TESTRESULT  SUBPARTITION(RESULT_PART_201411_62);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐