declare
v_sql varchar(400);
v_table_name user_tab_partitions.table_name%type;
v_partition_name user_tab_partitions.partition_name%type;
v_high_value varchar(200);
v_tmp_partition_name user_tab_partitions.partition_name%type;
cursor cur is
select
table_name ,
partition_name ,
high_value
from user_tab_partitions
where partition_name like ‘SYS%‘ ;
begin
open cur;
loop
fetch cur into v_table_name,v_partition_name,v_high_value;
exit when cur%notfound;
v_tmp_partition_name := substr(v_high_value,11,10);
v_tmp_partition_name := to_char( to_date(v_tmp_partition_name,‘yyyy-mm-dd‘)-1 , ‘yyyymm‘);
v_sql := ‘alter table ‘||v_table_name||‘ rename partition ‘
||v_partition_name
||‘ to P‘||v_tmp_partition_name;
dbms_output.put_line( v_sql );
execute immediate v_sql;
end loop;
close cur;
end;
/