select partition_name,column_name,high_value,partition_position
from ALL_TAB_PARTITIONS a , ALL_PART_KEY_COLUMNS b
where table_name='YOUR_TABLE' and a.table_name = b.name;
Questa interrogazione elenca il nome della colonna utilizzata come chiave e il permesso valori. Assicurati di aver inserito i valori consentiti (high_value
). Altrimenti, se la partizione predefinita è definita, andrebbe lì.
EDIT:
presumo, il vostro DDL TABELLA sarebbe come questo.
CREATE TABLE HE0_DT_INF_INTERFAZ_MES
(
COD_PAIS NUMBER,
FEC_DATA NUMBER,
INTERFAZ VARCHAR2(100)
)
partition BY RANGE(COD_PAIS, FEC_DATA)
(
PARTITION PDIA_98_20091023 VALUES LESS THAN (98,20091024)
);
Il che significa che avevo creato una partizione con più colonne, che ha un valore inferiore rispetto al range composito (98,20091024);
Questo è il primo COD_PAIS <= 98
ed anche FEC_DATA < 20091024
combinazioni e Risultato:
98, 20091024 FAIL
98, 20091023 PASS
99, ******** FAIL
97, ******** PASS
< 98, ******** PASS
Così il seguito INSERT
fallisce con ORA-14400; perché (98,20091024)
in INSERT
è uguale a a quello in DDL
ma meno in meno.
SQL> INSERT INTO HE0_DT_INF_INTERFAZ_MES(COD_PAIS, FEC_DATA, INTERFAZ)
VALUES(98, 20091024, 'CTA'); 2
INSERT INTO HE0_DT_INF_INTERFAZ_MES(COD_PAIS, FEC_DATA, INTERFAZ)
*
ERROR at line 1:
ORA-14400: inserted partition key does not map to any partition
Ma, ci tento (, 20.091.024), passa attraverso
SQL> INSERT INTO HE0_DT_INF_INTERFAZ_MES(COD_PAIS, FEC_DATA, INTERFAZ)
2 VALUES(97, 20091024, 'CTA');
1 row created.
si sta tentando di inserire righe nella partizione che non esiste. Hai definito la partizione predefinita? creare una partizione predefinita e controllare le righe in quella partizione dopo l'istruzione di inserimento per determinare se sono necessarie nuove partizioni aggiunte –
@ user3249825 Puoi riferirti alla mia risposta aggiornata? –