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語句就可以訪問的操作某乙個分割槽而不是整個表,因而提高管理的效率。分割槽對於資料倉儲應用程式非常有效,因為他們常常儲存和分析巨量的歷史資料。分割槽表...