自动创建表分区

create or replace package body PKG_AutoPartition is
– Author : *
– Created : *
– Purpose : 自动创建分区表
procedure Pro_Add_Partition
as
v_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)) <to_number(v_day) then

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;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值