Oracle擴充套件分割槽表分割槽的指令碼

2021-09-11 05:55:53 字數 1369 閱讀 8304

declare

v_tn    varchar2(100) := 'lsdas'; --決策庫名 大寫

v_ny    varchar2(100) := '201901'; --建立起始分割槽的時間

v_tpnum number := 60; --增加分割槽月數 預設五年60個月

v_tp    varchar2(100) := ''; -- 決策庫表空間 可不指定 可自動獲取

v_sql   varchar2(4000) := ''; --不要動

v_num   number := 1; --不要動

v_t     date := to_date(v_ny, 'yyyymm'); --不要動

begin

select default_tablespace into v_tp from dba_users where username = v_tn;

for rowdata in (select distinct a.table_name from user_tab_partitions a) loop

v_num := 1;

v_t   := to_date(v_ny, 'yyyymm');

loop

begin

exit when v_num > v_tpnum;

v_sql := 'alter table ' || rowdata.table_name ||

' add

partition p_sjqb_' || to_char(v_t, 'yyyymm') ||

' values (''' || to_char(v_t, 'yyyymm') || ''')

tablespace ' || v_tp || ' 

pctfree 10

initrans 1

maxtrans 255

storage

(initial 1m

next 1m

minextents 1

)';--dbms_output.put_line(v_sql);

execute immediate v_sql;

v_num := v_num + 1;

v_t   := add_months(v_t, 1);

exception

when others then

v_num := v_num + 1;

v_t   := add_months(v_t, 1);

--dbms_output.put_line(rowdata.table_name || sqlcode || '---' ||sqlerrm);

end;

end loop;

end loop;

end;

ORACLE 分割槽表分割槽拆分

oracle建立分割槽表,分割槽規則為按照日期進行分割槽,由於投產日期未知,因此建議使用按照當前日期自動建立分割槽。僅需建立乙個max分割槽,然後通過split進行分割槽拆分,建立一年前的全部分割槽。示例 如下 create table wen dt decimal 8,0 id decimal 1...

oracle表分割槽設計 ORACLE 分割槽表的設計

分割槽表的概念 分割槽致力於解決支援極大表和索引的關鍵問題。它採用他們分解成較小和易於管理的稱為分割槽的片 piece 的方法。一旦分割槽被定義,sql語句就可以訪問的操作某乙個分割槽而不是整個表,因而提高管理的效率。分割槽對於資料倉儲應用程式非常有效,因為他們常常儲存和分析巨量的歷史資料。分割槽表...

oracle表分割槽設計 ORACLE分割槽表的設計

分割槽表的概念 分割槽致力於解決支援極大表和索引的關鍵問題。它採用他們分解成較小和易於管理的稱為分割槽的片 piece 的方法。一旦分割槽被定義,sql語句就可以訪問的操作某乙個分割槽而不是整個表,因而提高管理的效率。分割槽對於資料倉儲應用程式非常有效,因為他們常常儲存和分析巨量的歷史資料。分割槽表...