Oracle使用range分區(qū)并根據(jù)時間列自動創(chuàng)建分區(qū)
Oracle使用range分區(qū),根據(jù)時間列自動創(chuàng)建分區(qū)
-- 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')) --月分區(qū)用month,年分區(qū)用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 根據(jù)日期自動生成分區(qū)表
oracle 根據(jù)日期自動生成分區(qū)表
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是一個數(shù)字,c是一個字符串,
表明x的單位,這個函數(shù)把x轉(zhuǎn)為interval day to second數(shù)據(jù)類型
常用的單位有 (‘day’,‘hour’,‘minute’,‘second’)
numtoyminterval 與numtodsinterval函數(shù)類似,將x轉(zhuǎn)為interval year to month數(shù)據(jù)類型
常用的單位有(‘year’,‘month’)
格式:NumToYMInterval(n, interval_unit);
n: 數(shù)值類型
interval_unit: ‘YEAR’, ‘MONTH’ ,或其他可以轉(zhuǎn)換成這兩個值之一的表達(dá)式
NumToYMInterval(1, ‘YEAR’) :一年后的間隔
NumToYMInterval(-1, ‘MONTH’): 一個月前
小數(shù)會被計(jì)算成整數(shù)后,再做計(jì)算:
select sysdate + numtoyminterval(0.1, 'MONTH') from dual; 2023-03-21 09:54:37
如果執(zhí)行含有函數(shù)的sql時報錯:”INTERVAL YEAR TO MONTH literal“。不能與數(shù)值做運(yùn)算。
常用用途:
做日期運(yùn)算時,這個函數(shù)非常有用。例如:取一個月后的日期:
select sysdate + NumToYMInterval(1, 'MONTH') from dual;
到此這篇關(guān)于Oracle使用range分區(qū)并根據(jù)時間列自動創(chuàng)建分區(qū)的文章就介紹到這了,更多相關(guān)Oracle自動創(chuàng)建分區(qū)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
在OracleE數(shù)據(jù)庫的字段上建立索引的方法
在OracleE數(shù)據(jù)庫的字段上建立索引的方法...2007-04-04Oracle dbca時報:ORA-12547: TNS:lost contact錯誤的解決
這篇文章主要給大家介紹了關(guān)于Oracle在dbca時報:ORA-12547: TNS:lost contact錯誤的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。2017-11-11oracle正則表達(dá)式多項(xiàng)匹配時相似項(xiàng)有優(yōu)先級詳解
這篇文章主要給大家介紹了關(guān)于oracle正則表達(dá)式多項(xiàng)匹配時相似項(xiàng)有優(yōu)先級的相關(guān)資料,Oracle中使用正則表達(dá)式需先使用REGEXP_LIKE函數(shù)來匹配字符串,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-06-06oracle在導(dǎo)入數(shù)據(jù)時報600錯誤的解決方法
最近在工作中進(jìn)行oracle數(shù)據(jù)庫導(dǎo)入的時候遇到了600錯誤,通過查找相關(guān)的資料,最終終于解決了,下面這篇文章主要給大家介紹了關(guān)于oracle在導(dǎo)入數(shù)據(jù)時報600錯誤的解決方法,需要的朋友可以參考借鑒,下面來一起看看吧。2017-09-09oracle不能使用EM怎么辦 oracle11g如何正確安裝配置EM
這篇文章主要為大家詳細(xì)介紹了oracle不能使用EM的解決方法,oracle11g如何正確安裝配置EM,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-05-05oracle合并列的函數(shù)wm_concat的使用詳解
本篇文章是對oracle合并列的函數(shù)wm_concat的使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05