您可以安排作業在適當時添加這些分區。由於這是一個DDL,因此可以使用動態SQL來完成。
例如,對於按月份進行數據分區的表格,您可以在每個月的最後一個週末進行一項工作,創建下個月的部分工作。
create or replace procedure p_part_maintenance_mnthy
as
declare
v_partition_name all_tab_partitions.partition_name%type;
v_limit varchar2(50);
begin
select to_char(trunc(add_months(sysdate,1),'MM'),'MonYYYY')
into v_partition_name
from dual; --eg. output Oct2012
select to_char(trunc(add_months(sysdate,2),'MM'),'dd-mon-yyyy')
into v_limit
from dual; -- eg. output 01-nov-2012
execute immediate 'ALTER TABLE sales ADD PARTITION ' || v_partition_name ||
' VALUES LESS THAN (' || v_limit || ') tablespace XYZ';
end;
/
通常,所有類似的函數調用如上述(每日,每月和每年)將是在一個封裝中,並採取在表名作爲輸入,以及。必要時可以從個別程序中調用。
問題和答案都對日期格式或語言做出了假設。我強烈建議你總是使用ANSI日期文字,例如'date'2007-11-01''。 –