建立分割槽表aaa,通過字段建立時間的年份來分割槽,分割槽表自動根據插入的資料新增對應的分割槽,不過此處自動建立的分割槽名稱為系統建立的,如:sys_24。
create table aaa( id number(8),
createtime date,
value number(8)
) partition by range(createtime)
interval(numtoyminterval(1,'year'))
( partition p2014 values less than(to_date('2015-01-01','yyyy-mm-dd'))
);
不過,這種分割槽名稱難以使用,故後面會使用儲存過程來修改分割槽表的分割槽名。
create or replace procedure pro_modified_partition_nameascursor partitiionlist
is select table_name,partition_name,tablespace_name,high_value from user_tab_partitions where table_name ='
aaa' and instr(partition_name, '
sys') > 0
; row_p partitiionlist%rowtype;
pname varchar2(
100);
hv varchar2(
2000
);hv_year number;
pnewname varchar2(
100);
sql_stmt varchar2(
200);
begin
open partitiionlist;
for row_p in
partitiionlist loop
pname:=row_p.partition_name;
hv:=row_p.high_value;
hv_year := to_number(substr(hv,11,4))-1
; pnewname := '
p'||hv_year;
--執行alter語句要使用動態sql(execute immediate)
sql_stmt := '
alter table aaa rename partition
'||pname||'
to '||pnewname;
execute immediate sql_stmt;
end loop row_p;
close partitiionlist;
end;
通過分割槽表的high_value值來擷取對應的時間,再用以修改為分割槽名。
Oracle 為分割槽表新增新分割槽
關鍵字 需求 新增分割槽 離線訊息表offlmg,在原有分割槽的基礎上新增乙個分割槽。分析 資料量大 1.該錶有50張,從offlmg 0到offlmg 49,資料量比較大,最少的一張有幾千萬資料,50g左右,最大的一張有幾億資料,超過300g.2.該錶為list分割槽表,有default分割槽,且...
Oracle 建立分割槽表
建立表空間 create tablespace mytablespace 1 datafile c oracle product 10.1.0 oradata mydata mytablespace1.dbf size 100m extent management local uniform siz...
hive 建立分割槽表
必須在表定義時建立partition a 單分割槽建表語句 create table day table id int,content string partitioned by dt string 單分割槽表,按天分割槽,在表結構中存在id,content,dt三列。以dt為資料夾區分 b 雙分割...