DBAtlas · Atlas d'exploitation des bases de données

Créer un partitionnement interval et convertir une table range existante en interval

OraclePartitionnement

Commande

-- New table: a partition is created automatically for each month
CREATE TABLE customer_app.measurements (
  ts        DATE   NOT NULL,
  sensor_id NUMBER,
  value     NUMBER)
PARTITION BY RANGE (ts) INTERVAL (NUMTOYMINTERVAL(1, 'MONTH'))
( PARTITION p_first VALUES LESS THAN (DATE '2026-01-01') );

-- Convert an existing range table to interval (there must be no MAXVALUE partition):
ALTER TABLE customer_app.sale_part SET INTERVAL (NUMTOYMINTERVAL(1, 'MONTH'));
-- Back to range: ALTER TABLE customer_app.sale_part SET INTERVAL ();

-- Rename a system-named partition to a meaningful name:
ALTER TABLE customer_app.measurements RENAME PARTITION FOR (DATE '2026-03-15') TO p2026_03;

-- Check:
SELECT partition_name, partition_position, interval, high_value
FROM   dba_tab_partitions
WHERE  table_owner = 'CUSTOMER_APP' AND table_name = 'MEASUREMENTS'
ORDER  BY partition_position;

SELECT table_name, partitioning_type, interval
FROM   dba_part_tables
WHERE  owner = 'CUSTOMER_APP';

Ce que fait la commande

Le partitionnement interval crée automatiquement une nouvelle partition à l'arrivée de la première ligne au-delà de la dernière borne, ce qui élimine les erreurs ORA-14400 dues à l'oubli de la partition du mois suivant. SET INTERVAL convertit une table range existante sans déplacer de données.

Quand l'utiliser

Pour les tables qui croissent par date, comme les séries temporelles, les journaux et les commandes, et pour réduire les scripts de maintenance des partitions.

Attention

Exige l'option Partitioning (EE payante). La clé de partitionnement doit être une seule colonne NUMBER/DATE/TIMESTAMP ; une partition MAXVALUE doit d'abord être supprimée. Une date erronée ou extrême (par ex. l'an 9999) ouvre une partition lointaine et fausse la numérotation des partitions ; avec des intervalles étroits, vous pouvez approcher la limite de 1 048 575 partitions (ORA-14300), validez donc les dates dans l'application. Les partitions automatiques vont dans le tablespace par défaut de la table (orientez-les avec STORE IN).

Ouvrir dans DBAtlas →

Voir aussi