create table sp_code(
  AAAA CHAR(2),
  BBBB VARCHAR2(20),
  CCCC VARCHAR2(20),
  DDDD VARCHAR2(20),
  EEEE VARCHAR2(20),
  FFFF VARCHAR2(20),
  GGGG VARCHAR2(20),
  HHHH VARCHAR2(20)
)
partition by list (AAAA)
(
  partition AAAA values ('01')
    tablespace DATA_SPC
    pctfree 40
    initrans 1
    maxtrans 255
    storage
    (
      initial 64K
      minextents 1
      maxextents unlimited
    ),
  partition AAAA values ('02')
    tablespace DATA_SPC
    storage
    (
      initial 64K
      minextents 1
      maxextents unlimited
    )
)
;如果我不加上后面的partition AAAA values ('02')是可以的。也就是说我只能够建一个分区.为什么会这样?

解决方案 »

  1.   

    CREATE TABLE SP_CODE( 
      AAAA CHAR(2), 
      BBBB VARCHAR2(20), 
      CCCC VARCHAR2(20), 
      DDDD VARCHAR2(20), 
      EEEE VARCHAR2(20), 
      FFFF VARCHAR2(20), 
      GGGG VARCHAR2(20), 
      HHHH VARCHAR2(20) 

    PARTITION BY LIST (AAAA) 

      PARTITION PART_01 VALUES ('01') 
        TABLESPACE system 
        PCTFREE 40 
        INITRANS 1 
        MAXTRANS 255 
        STORAGE 
        ( 
          INITIAL 64K 
          MINEXTENTS 1 
          MAXEXTENTS UNLIMITED 
        ), 
      PARTITION PART_02 VALUES ('02') 
        TABLESPACE system 
        STORAGE 
        ( 
          INITIAL 64K 
          MINEXTENTS 1 
          MAXEXTENTS UNLIMITED 
        ) 


     分区名重复了,改成PART_01,PART_02....就行了查询分区 SELECT * FROM  SP_CODE PARTITION  (PART_01);
      

  2.   

    增加分区
    ALTER TABLE SP_CODE
    ADD PARTITION PART_03 VALUES ('03')
    TABLESPACE SYSTEM DATA_SPC
      

  3.   

    把TABLESPACE SYSTEM DATA_SPC改成TABLESPACE DATA_SPC,我用system表空间在我机器上做了一下测试。