ORACLE自動建立分割槽

2021-08-19 21:12:28 字數 1692 閱讀 2972

oracle設定按日期的分割槽表,並保證每日均有15天的富餘。如若某天分割槽建立執行失敗,建立分割槽時需將失敗那天的分割槽補充建立。

每天按照最大分割槽同當前時間比對判斷,檢視缺失多少天,然後迴圈建立分割槽。

--建立儲存過程

create or replace procedure zxjy_ora.add_wen_pt

as v_sql1 varchar2(2000);

maxname varchar2(200);

intervalday integer;

now integer;

yestoday integer;

maxday integer := 15;

begin

select partition_name into maxname from (select substr(partition_name,2,8) as partition_name from user_tab_partitions where table_name='wen' and partition_name <> 'pmax' order by partition_name desc) where rownum = 1;

select trunc(to_date(maxname,'yyyymmdd'))-trunc(sysdate) into intervalday from dual;

for i in intervalday .. maxday-1 loop

select to_number(to_char(sysdate+i+2,'yyyymmdd')) into now from dual;

select to_number(to_char(sysdate+i+1,'yyyymmdd')) into yestoday from dual;

v_sql1:='alter table zxjy_ora.wen split partition pmax at ('||now||') into (partition p'||yestoday||',partition pmax)';

execute immediate v_sql1;

end loop;

end add_wen_pt;

/---建立排程

begin

dbms_scheduler.create_schedule (

schedule_name => 'sch_add_wen_pt',

start_date => sysdate,

repeat_interval => 'freq=daily; byhour=22;byminute=00;bysecond=0',

comments => 'each one days add a new partition ');

end;

/--建立作業執行排程

begin

dbms_scheduler.create_job (

job_name => 'job_add_wen_pt',

job_type => 'stored_procedure',

job_action => 'zxjy_ora.add_wen_pt',

schedule_name => 'sch_add_wen_pt', enabled => true);

end;

/

oracle自動分割槽

oralce在linux下自動備份並刪除5天前備份 匯出指令碼 export oracle base opt oracle 安裝路徑 export oracle home opt oracle 920 產品目錄 export path ora bin path oracle home bin 工具路...

oracle建立分割槽

範圍分割槽 range 本篇本章講解的分割槽 雜湊分割槽 hash 列表分割槽 list 範圍 雜湊復合分割槽 range hash 範圍 列表復合分割槽 range list 檢視分割槽數 select from user tab partitions where table name 表名 檢視...

oracle按時間自動建立分割槽表

首先明確分割槽表和表分割槽的區別 表分割槽是一種思想,分割槽表示一種技術實現。當表的大小過g的時候可以考慮進行表分割槽,提高查詢效率,均衡io。oracle分割槽表是oracle資料庫提供的一種表分割槽的實現形式。表進行分割槽後,邏輯上仍然是一張表,原來的查詢sql同樣生效,同時可以採用使用分割槽查...