Oracle使用range分區并根據時間列自動創建分區
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自動創建分區內容請搜索碩編程以前的文章,希望以后支持碩編程!
相關文章