自動建立表分割槽

2021-10-08 15:57:12 字數 2112 閱讀 5259

create or replace package body pkg_autopartition is

– author : *

– created : *

– purpose : 自動建立分割槽表

procedure pro_add_partition

asv_table_name varchar2(50); --表名

v_partition_name varchar2(50);–分割槽名

v_day varchar2(20);–天

v_sql_string varchar2(2000);–拼接的sql

v_add_day varchar2(20);–分割槽表 日期

cursor cur_part is select distinct u.table_name,max(p.partition_name) max_part_name from user_tables u,user_tab_partitions p

where u.table_name=p.table_name and u.partitioned = 『yes』

group by u.table_name;

begin

select to_char(sysdate,『yyyymmdd』) into v_day from dual;–20180401

select to_char(sysdate+14,『yyyymmdd』) into v_add_day from dual;–20180415

open cur_part;

loop

fetch cur_part into v_table_name,v_partition_name;

exit when cur_part%notfound;

if to_number(substr(v_partition_name,6)) v_sql_string :=『alter table 『||v_table_name||』 add partition part_』||v_add_day||

』 values less than ( to_date(』』』||v_add_day||』 23:59:59』』,』『yyyymmdd hh24:mi:ss』』) ) tablespace tjofficialvehicledb』;

execute immediate v_sql_string;

else

null;

end if;

end loop;

close cur_part;

end pro_add_partition;

end pkg_autopartition;

– 帶引數

create or replace package body pkg_getorbitdata is

–獲取軌跡資訊

procedure pro_getorbitdatainfo

(vehicleid_in number, --車輛id

stardate varchar2, --開始時間

enddata varchar2, --結束時間

cur_out out pkg_general.row_cursor)as

begin

open cur_out for

select * from reallocate t

where t.vehicleid = vehicleid_in

and t.devtime>=to_date(stardate,『yyyy-mm-dd hh24:mi:ss』)

and t.devtime<=to_date(enddata,『yyyy-mm-dd hh24:mi:ss』)

order by t.devtime ;

end pro_getorbitdatainfo;

end pkg_getorbitdata;

–執行查詢儲存過程用到

create or replace package pkg_general is

type row_cursor is ref cursor;

end pkg_general;

create or replace package body pkg_general is

end pkg_general;

建立分割槽表(按照年份分割槽,自動新增分割槽)

建立分割槽表aaa,通過字段建立時間的年份來分割槽,分割槽表自動根據插入的資料新增對應的分割槽,不過此處自動建立的分割槽名稱為系統建立的,如 sys 24。create table aaa id number 8 createtime date,value number 8 partition by...

建立表分割槽

表分割槽 單獨新增分割槽 alter table 表名 add partition 分割槽名 values less than to date 時間 yyyy mm dd hh24 mi ss tablespace 表空間名 pctfree 10 initrans 1 maxtrans 255 st...

ORACLE自動建立分割槽

oracle設定按日期的分割槽表,並保證每日均有15天的富餘。如若某天分割槽建立執行失敗,建立分割槽時需將失敗那天的分割槽補充建立。每天按照最大分割槽同當前時間比對判斷,檢視缺失多少天,然後迴圈建立分割槽。建立儲存過程 create or replace procedure zxjy ora.add...