oracle11g分区表按时间自动创建
生活随笔
收集整理的這篇文章主要介紹了
oracle11g分区表按时间自动创建
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
轉(zhuǎn)自:https://blog.csdn.net/rznice/article/details/55048876
首先來介紹下numtodsinterval和numtoyminterval兩個函數(shù)。numtoyminterval和numtoyminterval是日期轉(zhuǎn)換函數(shù),作用:可以將數(shù)字轉(zhuǎn)換成相應(yīng)的日期單位時間語法:NUMTOYMINTERVAL ( n , 'char_expr' )char_expr:日期描述,可以是YEAR和MONTH。通常當(dāng)我們使用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一樣只是他的參數(shù)為day、hour、minute、second。Oracle 11g之前,維護分區(qū)需要手工。11g之后使用interval來實現(xiàn)自動擴展分區(qū),簡化了維護。根據(jù)年: INTERVAL(NUMTOYMINTERVAL(1,'YEAR'))根據(jù)月: INTERVAL(NUMTOYMINTERVAL(1,'MONTH'))根據(jù)天: INTERVAL(NUMTODSINTERVAL(1,'DAY'))根據(jù)時分秒: 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'))
)
創(chuàng)建完畢后通過如下sql進行查詢分區(qū):
select partition_name from user_tab_partitions where table_name='tablenames';
新增不同年份的數(shù)據(jù),就會發(fā)現(xiàn)會按照年自動生成對應(yīng)分區(qū)。 刪除分區(qū)請查看:
https://blog.csdn.net/u013490585/article/details/79948987
總結(jié)
以上是生活随笔為你收集整理的oracle11g分区表按时间自动创建的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2022-2028年中国喹烯酮行业市场研
- 下一篇: 2022-2028年中国普鲁兰多糖行业市