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;
这样就可以自动实现按天分区。也可以写成一个过程,每次调用就好。