Oracle 创建分区表

--查看数据库中所有用户的分区表
SELECT * FROM DBA_TABLES WHERE PARTITIONED='YES' AND OWNER NOT IN ('SYSTEM','SYS') ORDER BY OWNER
--查看当前用户下的分区表
SELECT * FROM USER_TABLES WHERE PARTITIONED='YES'
--创建分区表--注意 PARTITION 的字段不能为空
CREATE TABLE TABLE_TEST
(	
	ID VARCHAR2(36 CHAR) NOT NULL PRIMARY KEY, 
	EVENT_ID VARCHAR2(36 CHAR), 
	PATIENT_ID VARCHAR2(36 CHAR), 
	PATIENT_NAME VARCHAR2(50 CHAR), 
	WARD_ID VARCHAR2(36 CHAR), 
	WARD_NAME VARCHAR2(50 CHAR), 
	ISSUE_TIME DATE
)
PARTITION BY RANGE (ISSUE_TIME)
INTERVAL ( NUMTOYMINTERVAL (3, 'MONTH') )  --每3个月建一个分区
(
 PARTITION P1 VALUES LESS THAN (TO_DATE('2018-1-1', 'YYYY-MM-DD')) --15年之前的数据统一建一个分区
)

--将现有表修改成分区表(此方法配合 RENAME TABLE_NAME TO TABLE_NAME_NEW 适用于数据迁移)
CREATE TABLE E_CHARGE_RECORD_1
PARTITION BY RANGE (ISSUE_TIME)
INTERVAL ( NUMTOYMINTERVAL (3, 'MONTH') )  --每3个月建一个分区
(
     PARTITION P1 VALUES LESS THAN (TO_DATE('2015-1-1', 'YYYY-MM-DD')) --15年之前的数据统一建一个分区
)
AS
SELECT * FROM E_CHARGE_RECORD;

 测试效果

猜你喜欢

转载自www.cnblogs.com/vipsoft/p/8960844.html