create table t_partition
(
parti_name VARCHAR2(20),
table_name VARCHAR2(200)
);
create or replace procedure P_DEL_TEST1_PARTITION is
v_error varchar2(1000);
v_cnt number(10);
v_cnt1 number(10);
maxnum number(10);
v_parti_name varchar2(10);
begin
maxnum := 10;
--查询当前表上分区的数量
execute immediate 'select count(*) from all_tab_partitions t where upper(table_name)= ''T_TEST1'''
into v_cnt;
--保存maxnum + 1个分区
if v_cnt > maxnum + 1 then
execute immediate 'delete from t_partition where upper(table_name)= ''T_TEST1''';
commit;
insert into t_partition
select t.SUBOBJECT_NAME, 'T_TEST1' as table_name
from user_objects t
where upper(t.object_name) = 'T_TEST1'
a