例如,我有一个表名Emp,它有empname,names,salary作为列。我希望这个表有2个分区,比如一个分区中的管理员和一个分区中的休息(工程师,工人,职员)的员工列表。
有人可以帮助如何创建它
答案 0 :(得分:2)
在这种情况下,您将不得不使用基于LIST的分区。在ROLE = MANAGER中创建一个关联,并创建另一个默认的分区。这是一个可以帮助你的例子。
Exclude values from oracle partition
示例强>
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)
);
答案 1 :(得分:0)
请参阅以下网址和示例: 例如,以下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);
对于按列表分区的示例表客户,以下语句将分区Europe拆分为三个分区。
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
你会对此有所了解。