如何在存储过程中自动添加分区

时间:2022-03-09 08:13:18
declare
  v_sql      varchar2(1000);
  TABLE_NAME VARCHAR2(100);
  I_DAY      VARCHAR2(8) := '20120611';
  I_L_DAY    VARCHAR2(8);
begin
  I_L_DAY    := TO_CHAR((TO_DATE(I_DAY, 'YYYYMMDD') + 1), 'YYYYMMDD');
  TABLE_NAME := upper('表名');
  v_sql      := 'ALTER TABLE' || ' ' || TABLE_NAME || ' ' ||
                'ADD PARTITION' || ' ' || 'PART_' || I_DAY || ' ' ||
                'VALUES LESS THAN (''' || I_L_DAY || ''')';
  DBMS_OUTPUT.put_line(v_sql);
end;

      这样就可以自动实现按天分区。也可以写成一个过程,每次调用就好。