例如,我有一个表名 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
你会对此有所了解。