|
|
试试这个
create or replace procedure up_drop_partition(v_ym varchar2)
as
cursor cur_pname is select 'alter table '||table_name||' drop partition '||partition_name as sql
from user_tab_partitions
where substr(partition_name,instr(partition_name,'_')+1) < v_ym
--说明,这样写的话输入参数的格式就是yyyymm(200408),你可以执行删除
--任何年月以前的分区,写存储过程最好要灵活一些,如果你想删除200410以前的分区只需要输入'200410';
begin
for v_sql in cur_pname loop
dbms_output.put_line(v_sql.sql);
execute immediate v_sql.sql;
end loop;
end;
/
exec up_drop_partition('200408'); |
|