Oracle使用range分区并根据时间列自动创建分区,
Oracle使用range分区,根据时间列自动创建分区
-- Create table create table MY_TEST ( id NUMBER (12) not null, name VARCHAR2 (12) not null, today TIMESTAMP (6) default SYSDATE ) partition by range (today) interval(numtodsinterval(1,'day')) --月分区用month,年分区用year ( partition P_20230411 values less than (TO_DATE('2023-04-12 00:00:00,"SYYYY-MM-DD HH24:MI:SS")) tablespace TB_SAMS pctfree 10 initrans 1 maxtrans 255 storage ( initial 1M next 1M minextents 1 maxextents unlimited ) ); - - Add comments to the table comment on table MY_TEST is ‘测试表'; Add comments to the columns comment on column MY_TEST.id is ‘主键id'; comment on column MY_TEST.name is ‘名称'; comment on column MY_TEST.today is ‘时间'; - - Create/Recreate indexes create index MY_TEST_INDEX on MY_TEST (id) tablespace TB_SAMS pctfree 10 initrans 2 maxtrans 255 storage ( initial 64K next 1M minextents 1 maxextents unlimited ); - -Grant/Revoke object privileges grant select on MY_TEST to DBVIEW; INSERT INTO MY_TEST VALUES (1,'xxc1',SYSDATE); INSERT INTO MY_TEST VALUES (2,'xxc2'‚SYSDATE+1); INSERT INTO MY_TEST VAIUES (3,'xxc3',SYSDATE+2) ;
测试效果
附录:oracle 根据日期自动生成分区表
oracle 根据日期自动生成分区表
CREATE TABLE my_table ( id NUMBER, name VARCHAR2(50), created_date DATE ) PARTITION BY RANGE (created_date) INTERVAL (NUMTODSINTERVAL(1, 'DAY')) ( PARTITION p1 VALUES LESS THAN (TO_DATE('2022-01-01', 'YYYY-MM-DD')) );
其中:
numtodsinterval(,) ,x是一个数字,c是一个字符串,
表明x的单位,这个函数把x转为interval day to second数据类型
常用的单位有 (‘day’,‘hour’,‘minute’,‘second’)
numtoyminterval 与numtodsinterval函数类似,将x转为interval year to month数据类型
常用的单位有(‘year’,‘month’)
格式:NumToYMInterval(n, interval_unit);
n: 数值类型
interval_unit: ‘YEAR’, ‘MONTH’ ,或其他可以转换成这两个值之一的表达式
NumToYMInterval(1, ‘YEAR’) :一年后的间隔
NumToYMInterval(-1, ‘MONTH’): 一个月前
小数会被计算成整数后,再做计算:
select sysdate + numtoyminterval(0.1, 'MONTH') from dual; 2023-03-21 09:54:37
如果执行含有函数的sql时报错:”INTERVAL YEAR TO MONTH literal“。不能与数值做运算。
常用用途:
做日期运算时,这个函数非常有用。例如:取一个月后的日期:
select sysdate + NumToYMInterval(1, 'MONTH') from dual;
到此这篇关于Oracle使用range分区并根据时间列自动创建分区的文章就介绍到这了,更多相关Oracle自动创建分区内容请搜索PHP之友以前的文章或继续浏览下面的相关文章希望大家以后多多支持PHP之友!
您可能感兴趣的文章:- Oracle表分区详解
- 详解oracle的分表之表分区的具体使用和示例
- oracle分区索引的失效和重建代码示例
- oracle普通表转化为分区表的方法
- oracle表空间表分区详解及oracle表分区查询使用方法
- ORACLE 分区表的设计
- Oracle range时间范围自动分区的创建方式
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。