oracle11g分区表按时间自动创建

转载 2018年04月14日 22:16:42

转自:https://blog.csdn.net/rznice/article/details/55048876

   首先来介绍下numtodsinterval和numtoyminterval两个函数。
   numtoyminterval和numtoyminterval是日期转换函数,作用:可以将数字转换成相应的日期单位时间
   语法:NUMTOYMINTERVAL ( n , 'char_expr' )
   char_expr:日期描述,可以是YEAR和MONTH。
   通常当我们使用add_month添加月时,如果输入是本月月底的日期,那么得到的也是月底的日期,比如add_month(to_date('2007-02-28','yyyy-mm-dd'),1)得到的就会是'2007-03-31',而不是'2007-03-28'。
   此时,如果使用的是to_date('2007-02-28','yyyy-mm-dd')+numtoyminterval(1,'month'),那么得到的就是'2007-03-28'。
   numtodsinterval的用法和numtoyminterval一样只是他的参数为day、hour、minute、second。
   Oracle 11g之前,维护分区需要手工。11g之后使用interval来实现自动扩展分区,简化了维护。
   根据年: INTERVAL(NUMTOYMINTERVAL(1,'YEAR'))
   根据月: INTERVAL(NUMTOYMINTERVAL(1,'MONTH'))
   根据天: INTERVAL(NUMTODSINTERVAL(1,'DAY'))
   根据时分秒: NUMTODSINTERVAL( n, { 'DAY'|'HOUR'|'MINUTE'|'SECOND'})

create table tablenames (fid number not null PRIMARY KEY, sdate date,addr varchar2(1000))
partition by range (sdate) interval (numtoyMinterval (1,'MONTH'))
(
partition ptablenames values less than (to_date('2017-02-13', 'yyyy-mm-dd'))
)

   创建完毕后通过如下sql进行查询分区:

select partition_name from user_tab_partitions where table_name='tablenames';

   新增不同年份的数据,就会发现会按照年自动生成对应分区。 
删除分区请查看:https://blog.csdn.net/u013490585/article/details/79948987

oracle按时间自动创建分区表

首先明确分区表和表分区的区别:表分区是一种思想,分区表示一种技术实现。当表的大小过G的时候可以考虑进行表分区,提高查询效率,均衡IO。oracle分区表是oracle数据库提供的一种表分区的实现形式。...
  • Guns_NRoses
  • Guns_NRoses
  • 2016-11-08 15:48:30
  • 5736

Oracle 11g 实现按月创建表分区

Oracle 11g 实现按月创建表分区
  • wanlong360599336
  • wanlong360599336
  • 2016-10-10 15:15:54
  • 1823

Oracle创建按时间戳分区表

1 建分区表 -- Create table create table PARTITION_TABLE ( field1 INTEGER, field2 VARCHAR2(32), ...
  • chichuduxing
  • chichuduxing
  • 2017-03-30 17:48:35
  • 907

oracle按时间创建分区表

首先明确分区表和表分区的区别:表分区是一种思想,分区表示一种技术实现。当表的大小过G的时候可以考虑进行表分区,提高查询效率,均衡IO。oracle分区表是oracle数据库提供的一种表分区的实现形式。...
  • shanhuhau
  • shanhuhau
  • 2014-02-24 09:57:40
  • 15889

oracle11g自动创建分区(INTERVAL PATITION)后的定时删分区

某表利用oracle11的自动创建分区功能按天分区,现在要定时删除30天之前的分区数据,保持表里只有30天的业务数据,因为分区是动态创建,无法获得分区名,所以要用到字典表user_objects ,存...
  • ronawilliam
  • ronawilliam
  • 2014-01-09 17:09:46
  • 4559

oracle 11g的interval partition 如何按天\周\月\年分区

ORACLE11g的表分区功能中可以建立新类型的Interval分区表,它可以根据加载数据,自动创建指定间隔的分区,也就是说建立了Interval分区 ,就不必像ORACLE10以前的表分区那样需...
  • sdtysdu2000
  • sdtysdu2000
  • 2013-06-09 17:39:16
  • 5196

Oracle 11g 通过间隔分区实现按月创建表分区

在项目数据库设计过程中由于单表的数据量非常庞大,需要对表进行分区处理。由于表中的数据是历史交易,故按月分区,提升查询和管理。   由于之前对于表分区了解不多,为了实现上述功能查了很多资料,一开始的方...
  • gavinloo
  • gavinloo
  • 2014-05-06 16:16:14
  • 24386

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

oracle 按照日期给表进行分区
  • S630730701
  • S630730701
  • 2017-03-31 09:24:38
  • 1363

ORACLE创建按月和按天的自动递增分区

原文链接:http://blog.chinaunix.net/uid-21943216-id-4062400.html 一、建按月自增分区表: 1.1建表 SQL> create table m...
  • jarniyy
  • jarniyy
  • 2016-08-30 14:59:42
  • 5922

PostgreSQL中使用动态SQL-实现自动按时间创建表分区

自动实现PostgreSQL表分区操作
  • zhwzju
  • zhwzju
  • 2015-11-04 13:36:46
  • 4814
收藏助手
不良信息举报
您举报文章:oracle11g分区表按时间自动创建
举报原因:
原因补充:

(最多只允许输入30个字)