knightmanish
knightmanish

Reputation: 11

How to create subpartition for Reference-Partitioned Tables

Consider the following scenario of Reference-Partitioned Tables. The table T_PARTNER_CUSTOMER borrows partition part1 and part2 from table T_PARTNER_CONFIG.

CREATE TABLE T_PARTNER_CONFIG (
  ID                   NUMBER(38)                 NOT NULL,
  SECURITY_CONTEXT_ID  NUMBER(38)                 NOT NULL
)
PARTITION BY LIST(SECURITY_CONTEXT_ID)
(PARTITION part1 VALUES (0, 1, 2),
 PARTITION part2 VALUES (4, 5, 6));


CREATE TABLE T_PARTNER_CUSTOMER (
  ID                 NUMBER(38)              NOT NULL,
  PARTNER_CONFIG_ID  NUMBER(38)              NOT NULL
  CUSTOMER_NUMBER    VARCHAR2(10)            NOT NULL,
  CONSTRAINT FK_PC_PARTNER_CONFIG
      FOREIGN KEY(PARTNER_CONFIG_ID) REFERENCES T_PARTNER_CONFIG (id)  
)
PARTITION BY REFERENCE(FK_PC_PARTNER_CONFIG);

Now if we want to create further subpartition for table T_PARTNER_CUSTOMER, so that the partition part1 and part2 are further subdivided for table T_PARTNER_CUSTOMER. I tried the approach below, but it doesn't work. I am using Oracle 11g Enterprise edition.

CREATE TABLE T_PARTNER_CUSTOMER (
  ID                 NUMBER(38)              NOT NULL,
  PARTNER_CONFIG_ID  NUMBER(38)              NOT NULL
  CUSTOMER_NUMBER    VARCHAR2(10)            NOT NULL,
  CONSTRAINT FK_PC_PARTNER_CONFIG
      FOREIGN KEY(PARTNER_CONFIG_ID) REFERENCES T_PARTNER_CONFIG (id)  
)
PARTITION BY REFERENCE(FK_PC_PARTNER_CONFIG)
SUBPARTITION BY HASH (CUSTOMER_NUMBER) SUBPARTITIONS 8;

Upvotes: 0

Views: 927

Answers (1)

Wernfried Domscheit
Wernfried Domscheit

Reputation: 59476

Seems to be impossible, see documentation:

enter image description here

There is no "SUBPARTITON" clause available, unlike for other partition type, e.g. LIST:

enter image description here

Upvotes: 1

Related Questions