oracle按照日期自动进行表分区

--创建自动分区表:
    --已日期类型分区

CREATE TABLE T_DPI_FIRSTVISIT_HTTP(  
   DATE_TAG DATE,  
   STATDATE VARCHAR(8),
   ACC_NBR VARCHAR2(20),  
   CATEGORY VARCHAR2(200),  
   SUB_DOMAIN VARCHAR2(1000),  
    TOTAL_FLOW NUMBER(10),  
    TOTAL_DURATION NUMBER(10) 
   )  
  PARTITION BY RANGE(DATE_TAG)  
  INTERVAL (numtodsinterval(1,'DAY'))  
  (  
  PARTITION part_01 values LESS THAN (TO_DATE('20171231','YYYYMMDD'))  
  );  



insert into T_DPI_FIRSTVISIT_HTTP (DATE_TAG,STATDATE,ACC_NBR,CATEGORY,SUB_DOMAIN,TOTAL_FLOW,TOTAL_DURATION) 
VALUES (SYSDATE+2,TO_CHAR(SYSDATE,'YYYYMMDD'),'00001','GATEGORY','sub_domain',6,7);

select * from T_DPI_FIRSTVISIT_HTTP
--查询表分区的信息
SELECT * FROM USER_SEGMENTS;

--清空表分区数据:
alter table T_DPI_FIRSTVISIT_HTTP truncate partition part_01;
--直接删除分区:
alter table T_DPI_FIRSTVISIT_HTTP drop partition part_01;
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle数据库支持自动日期分区,这可以通过创建分区表和使用范围分区来实现。具体步骤如下: 1. 创建分区表:首先需要创建一个,并指定分区键和分区类型。例如,我们可以创建一个按日期分区: ``` CREATE TABLE my_table ( id NUMBER, created_date DATE ) PARTITION BY RANGE (created_date) ``` 2. 创建分区策略:接下来需要创建一个分区策略,用于自动创建新分区。例如,我们可以创建一个每月一个分区的策略: ``` BEGIN DBMS_SCHEDULER.CREATE_SCHEDULE('monthly_partition', repeat_interval => 'FREQ=MONTHLY;BYMONTHDAY=1'); DBMS_SCHEDULER.CREATE_PROGRAM('create_partition', program_type => 'PLSQL_BLOCK', program_action => 'BEGIN EXECUTE IMMEDIATE ''ALTER TABLE my_table ADD PARTITION my_table_p'' || TO_CHAR(SYSDATE, ''YYYY_MM'') || '' VALUES LESS THAN (TO_DATE(''''01-'''' || TO_CHAR(ADD_MONTHS(SYSDATE, 1), ''''MM'''') || ''''-01'''', ''''DD-MM-YYYY''''))''; END;'); DBMS_SCHEDULER.CREATE_JOB('create_partition_job', program_name => 'create_partition', schedule_name => 'monthly_partition', auto_drop => FALSE); END; ``` 这个策略会每月1号自动创建一个新的分区,命名为 `my_table_p_YYYY_MM`,并将 `created_date` 值小于该分区的所有记录归档到该分区中。 3. 启动任务:最后需要启动创建分区的任务,使其开始自动创建新分区。可以使用以下命令启动任务: ``` BEGIN DBMS_SCHEDULER.RUN_JOB('create_partition_job'); END; ``` 这样,Oracle数据库就会自动日期分区了。每当新的一天或新的一月开始时,都会自动创建一个新的分区,并将相应的记录归档到该分区中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值