vv_etl_d := to_char(add_months(vd_deal_date, 0 - l_table_list.partition_count),'yyyymm');
vv_etl_c := to_char(vd_deal_date + 1,'yyyymmdd');
vv_last_day := null;
vv_partition_name_a := upper(l_table_list.partition_name||vv_etl_a);
vv_partition_name_d := upper(l_table_list.partition_name||vv_etl_d);
else
goto NEXT_ROW;
end if;
begin
/** @description add partition*/
/** @description get partition number*/
select count(*)
into vi_count
from all_tab_partitions
where table_owner = upper(l_table_list.owner)
and table_name = upper(l_table_list.table_name)
and partition_name = vv_partition_name_a;
/** @description add partition if partition is not exist*/
if vi_count = 0 then
vv_add_p_sql := 'alter table '||l_table_list.owner||'.'||l_table_list.table_name||' ';
dbms_output.put_line('1'||vv_add_p_sql);
vv_add_p_sql := vv_add_p_sql||'add partition '||vv_partition_name_a||' ';
dbms_output.put_line('2'||vv_add_p_sql);
/** @description judge partition type and partition column's data type.0:date,1:char,2:number*/
if upper(l_table_list.partition_type_id) = 'L' then
if l_table_list.date_type_id = '0' then
vv_add_p_sql := vv_add_p_sql||'values (to_date('''||vv_etl_a||''',''yyyymmdd'')) tablespace ';
elsif l_table_list.date_type_id = '1' then
vv_add_p_sql := vv_add_p_sql||'values ('||vv_etl_a||') tablespace ';
elsif l_table_list.date_type_id = '2' then
vv_add_p_sql := vv_add_p_sql||'values '||'('||to_number(vv_etl_a)||')'||' tablespace ';
end if;
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/12961536/viewspace-1061430/
,如需转载,请注明出处,否则将追究法律责任。