如何在oracle中创建子分区?

问题描述:

现在我开始学习oracle.some中的分区概念了。我现在如何管理分区,我试图在Oracle中创建子分区。我得到这个错误如何在oracle中创建子分区?

SQL Error: ORA-14160: this physical attribute may not be specified for a table subpartition 
14160. 00000 - "this physical attribute may not be specified for a table subpartition" 
*Cause: unexpected option was encountered while parsing physical 
      attributes of a table subpartition; TABLESPACE is the only valid 
      option 
*Action: remove invalid option(s) 
*Comment: this error could have resulted from omission of a 
      terminating (right) parenthesis following the list of 
      subpartition descriptions 

相应的代码是:提前

create table sub_pat_test(emp_name varchar2(30),job_id varchar2(30),hire_date date) 
    partition by range(hire_date) subpartition by list(job_id)(
    partition p1 values less than(to_date('01-01-2003','dd-mm-yyyy'))(
    subpartition sp1 values('HR_REP','PU_MAN'),subpartition sp11 values(default)), 

    partition p2 values less than(to_date('01-01-2004','dd-mm-yyyy'))(
    subpartition sp2 values('AC_ACCOUNT','FI_ACCOUNT') 
    subpartition sp22 values(default) 
    ) 
    partition p3 values less than(to_date('01-01-2005','dd-mm-yyyy'))(
    subpartition sp3 values('SH_CLERK','ST_CLERK') 
    subpartition sp33 values(default) 
    )) 
    partition p4 values less than(to_date('01-01-2006','dd-mm-yyyy'))(
    subpartition sp4 values('SA_MAN','PU_MAN') 
    subpartition sp44 values(default) 
    ) 
    partition p5 values less than(maxvalues)(
    subpartition sp5 values(default) 
    )) ; 

的感谢!

有两个错误 - 缺少逗号和你都提到MAXVALUEmaxvalues

create table sub_pat_test(emp_name varchar2(30),job_id varchar2(30),hire_date date) 
    partition by range(hire_date) 
    subpartition by list(job_id)(
    Partition P1 Values Less Than(To_Date('01-01-2003','dd-mm-yyyy')) 
    (
    Subpartition Sp1 Values('HR_REP','PU_MAN'), 
    Subpartition Sp11 Values(Default) 
    ), 
    Partition P2 Values Less Than(To_Date('01-01-2004','dd-mm-yyyy')) 
    (
    subpartition sp2 values('AC_ACCOUNT','FI_ACCOUNT') , 
    Subpartition Sp22 Values(Default) 
    ), 
    Partition P3 Values Less Than(To_Date('01-01-2005','dd-mm-yyyy')) 
    (
    subpartition sp3 values('SH_CLERK','ST_CLERK'), 
    subpartition sp33 values(default) 
    ), 
    Partition P4 Values Less Than(To_Date('01-01-2006','dd-mm-yyyy'))(
    subpartition sp4 values('SA_MAN','PU_MAN'), 
    subpartition sp44 values(default) 
    ), 
    partition p5 values less than(maxvalue)(
    subpartition sp5 values(default) 
    )) ; 
+0

哦..该死!!!!!哈哈谢谢你老兄! – 2013-02-28 10:12:26

错误的子分区/分区定义之间的逗号。

+0

无无我想,太.. – 2013-02-28 09:49:07

+0

雅家伙当我添加逗号我有这个错误:SQL错误: ORA-14019:分区绑定元素必须是以下其中一个:字符串,日期时间或间隔文字,数字或MAXVALUE14019. 00000 - “分区绑定元素必须是以下之一:字符串,日期时间或间隔文字,数字或MAXVALUE” *原因:分区绑定列表包含无效类型的元素 (即不是数字,非空字符串,日期时间或间隔l iteral, 或MAXVALUE) *操作:确保分区绑定列表中的所有元素均为有效类型 – 2013-02-28 09:55:16

+1

由于您已将MAXVALUE称为maxvalue,因此您会收到此错误。你已经添加了's'。看,我在这里发布的答案 – Incognito 2013-02-28 10:02:17