看文档有个
CREATE TABLE t2 (i NUMBER, j NUMBER)
PARTITION BY RANGE(j)
SUBPARTITION BY HASH(i)
(PARTITION p1 VALUES LESS THAN (10)
SUBPARTITION t2_pls1
SUBPARTITION t2_pls2,
PARTITION p2 VALUES LESS THAN (20)
SUBPARTITION t2_p2s1
SUBPARTITION t2_p2s2));
https://docs.oracle.com/cd/E11882_01/server.112/e25523/part_admin002.htm#i1007442
SQL> CREATE TABLE t2 (i NUMBER, j NUMBER)
2 PARTITION BY RANGE(j)
3 SUBPARTITION BY HASH(i)
4 (PARTITION p1 VALUES LESS THAN (10)
5 SUBPARTITION t2_pls1
6 SUBPARTITION t2_pls2,
7 PARTITION p2 VALUES LESS THAN (20)
8 SUBPARTITION t2_p2s1
9 SUBPARTITION t2_p2s2));
SUBPARTITION t2_pls1
*
ERROR at line 5:
ORA-14020: this physical attribute may not be specified for a table partition
报错,有检查了一下oracle给的例子
CREATE TABLE composite_sales
( prod_id NUMBER(6)
, cust_id NUMBER
, time_id DATE
, channel_id CHAR(1)
, promo_id NUMBER(6)
, quantity_sold NUMBER(3)
, amount_sold NUMBER(10,2)
)
PARTITION BY RANGE (time_id)
SUBPARTITION BY HASH (channel_id)
(PARTITION SALES_Q1_1998 VALUES LESS THAN (TO_DATE('01-APR-1998','DD-MON-YYYY')),
PARTITION SALES_Q2_1998 VALUES LESS THAN (TO_DATE('01-JUL-1998','DD-MON-YYYY')),
PARTITION SALES_Q3_1998 VALUES LESS THAN (TO_DATE('01-OCT-1998','DD-MON-YYYY')),
PARTITION SALES_Q4_1998 VALUES LESS THAN (TO_DATE('01-JAN-1999','DD-MON-YYYY')),
PARTITION SALES_Q1_1999 VALUES LESS THAN (TO_DATE('01-APR-1999','DD-MON-YYYY')),
PARTITION SALES_Q2_1999 VALUES LESS THAN (TO_DATE('01-JUL-1999','DD-MON-YYYY')),
PARTITION SALES_Q3_1999 VALUES LESS THAN (TO_DATE('01-OCT-1999','DD-MON-YYYY')),
PARTITION SALES_Q4_1999 VALUES LESS THAN (TO_DATE('01-JAN-2000','DD-MON-YYYY')),
PARTITION SALES_Q1_2000 VALUES LESS THAN (TO_DATE('01-APR-2000','DD-MON-YYYY')),
PARTITION SALES_Q2_2000 VALUES LESS THAN (TO_DATE('01-JUL-2000','DD-MON-YYYY'))
SUBPARTITIONS 8,
PARTITION SALES_Q3_2000 VALUES LESS THAN (TO_DATE('01-OCT-2000','DD-MON-YYYY'))
(SUBPARTITION ch_c,
SUBPARTITION ch_i,
SUBPARTITION ch_p,
SUBPARTITION ch_s,
SUBPARTITION ch_t),
PARTITION SALES_Q4_2000 VALUES LESS THAN (MAXVALUE)
SUBPARTITIONS 4)
;https://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_7002.htm#SQLRF01402
--发现oracle给的可以运行的例子,是有下面标红的括号和逗号
SQL> CREATE TABLE t2 (i NUMBER, j NUMBER)
2 PARTITION BY RANGE(j)
3 SUBPARTITION BY HASH(i)
4 (PARTITION p1 VALUES LESS THAN (10)
5 (SUBPARTITION t2_pls1,
6 SUBPARTITION t2_pls2),
7 PARTITION p2 VALUES LESS THAN (20)
8 (SUBPARTITION t2_p2s1,
9 SUBPARTITION t2_p2s2))
10 /
Table created.
SQL>