Előfordulhat, hogy nem cserélhető partíciókra van szükségünk, hanem automatikusan keletkezőkre. Az intervallum partíciók DATE típusú mezőkkel működnek, vegyünk példának egy log táblát:

create table app_logs
(
  id number generated always as identity primary key,
  pkg_name    varchar2(30) not null,
  sub_name    varchar2(30) not null,
  msg         varchar2(4000) not null,
  loglevel    number(2) default 10 not null,
  created_at  date default sysdate not null
)
partition by range (created_at)
interval (numtoyminterval(1, 'year'))
(
  partition p_2022 values less than (to_date('2023-01-01', 'yyyy-mm-dd'))
);

Ha csak range partíciókat használnánk, és elfelejtkeznénk az új partíció hozzáadásáról, akkor 2023-01-01-jén minden ide logoló kódunk hibát dobna. Teszteljük a fenti táblát egy nem létező partícióba tartozó adat beszúrásával:

insert
into app_logs (
  pkg_name, sub_name, msg,
  created_at
)
values (
  'test_pkg', 'test_sub', 'hello!',
  to_date('23-01-01 13:31', 'yy-mm-dd hh24:mi')
);

Bement! Ha megvizsgáljuk a tábla partícióit, az általunk definiált mellett látnunk kell egy újat is SYS_% névvel:

select *
from all_tab_partitions
where table_name = upper('app_logs');