在一个分区中对一个值,其余值在另一个分区中对表进行分区



例如,我有一个表名 Emp,它有 empname、name、salary 作为列。我希望这张表有 2 个分区,例如在一个分区中担任经理的员工列表,在一个分区中休息(工程师、牡丹、文员)。

有人可以帮忙如何创建它吗

在这种情况下,您将不得不使用基于 LIST 的分区。创建一个角色 = 管理器 的 pertition,并创建另一个默认分区。 这是一个对您有所帮助的示例。

从预言机分区中排除值

CREATE TABLE EMPLOYEE (EMP_ID VARCHAR2(25), 
                       EMP_NAME VARCHAR2(250),
                       ROLE VARCHAR2(100)
                       )
     PARTITION BY LIST (ROLE) 
     (
     PARTITION part_managers
        VALUES ('MANAGER'),
     PARTITION part_others
        VALUES (DEFAULT)
     );

请参考以下 URL 和示例:例如,以下 SQL 语句将按范围划分的表销售额的sales_Q4_2007分区拆分为对应于下一年季度的五个分区。在此示例中,分区sales_Q4_2008隐式成为拆分分区的上限。

ALTER TABLE sales SPLIT PARTITION sales_Q4_2007 INTO
( PARTITION sales_Q4_2007 VALUES LESS THAN (TO_DATE('01-JAN-2008','dd-MON-yyyy')),
  PARTITION sales_Q1_2008 VALUES LESS THAN (TO_DATE('01-APR-2008','dd-MON-yyyy')),
  PARTITION sales_Q2_2008 VALUES LESS THAN (TO_DATE('01-JUL-2008','dd-MON-yyyy')),
  PARTITION sales_Q3_2008 VALUES LESS THAN (TO_DATE('01-OCT-2008','dd-MON-yyyy')),
  PARTITION sales_Q4_2008);

对于按列表分区的示例表客户,以下语句将分区欧洲拆分为三个分区。

ALTER TABLE list_customers SPLIT PARTITION Europe INTO
  (PARTITION western-europe VALUES ('GERMANY', 'FRANCE'),
   PARTITION southern-europe VALUES ('ITALY'), 
   PARTITION rest-europe);

https://docs.oracle.com/database/121/VLDBG/GUID-01C14320-0D7B-48BE-A5AD-003DDA761277.htm

你会对此有所了解。

最新更新