2014-06-27 10 views
7

Ich versuche, Informationen in eine Partitionstabelle einzufügen, aber ich weiß nicht, was ich falsch mache! Zeigen Sie mir diesen Fehler : ORA-14400: inserted partition key does not map to any partition "Oracle-Partition - Fehler ORA14400 - eingesetzter Partitionsschlüssel wird keiner Partition zugeordnet

Die Tabelle dba_tab_partitions zeigt diese Daten unter:

1 PDIA_98_20091023 0 
2 PDIA_98_20091022 0 
3 PDIA_98_20091021 0 
4 PDIA_98_20091020 0 
5 PDIA_98_20091019 0 

Bitte helfen Sie mir rs

+0

Sie versuchen, Zeilen in der Partition einzufügen, die nicht existiert. Ist die Standardpartition definiert? Erstellen Sie eine Standardpartition und überprüfen Sie die Zeilen in dieser Partition nach der INSERT-Anweisung, um festzustellen, ob neue Partitionen hinzugefügt werden müssen –

+0

@ user3249825 Können Sie meine aktualisierte Antwort beziehen? –

Antwort

15
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; 

Diese Abfrage den Spaltennamen als Schlüssel verwendet auflistet und die erlaubte Stellen Sie sicher, dass Sie die zulässigen Werte eingeben (high_value), andernfalls wird die Standardpartition definiert, wenn sie definiert wird.


EDIT:

Ich nehme an, Ihre TABLE DDL so sein würde.

Das bedeutet, ich hatte eine Partition mit mehreren Spalten erstellt, die Wert weniger als den zusammengesetzten Bereich (98,20091024) enthält;

Das erste COD_PAIS <= 98 ist und FEC_DATA < 20091024 auch

Kombinationen und Ergebnis:

98, 20091024  FAIL 
98, 20091023  PASS 
99, ********  FAIL 
97, ********  PASS 
< 98, ********  PASS 

die unter INSERT nicht mit ORA-14400 So; weil (98,20091024) in INSERT ist EQUAL zu dem in DDL aber NICHT weniger als es.

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 

Aber wir ich versuchen (, 20091024), geht es durch

SQL> INSERT INTO HE0_DT_INF_INTERFAZ_MES(COD_PAIS, FEC_DATA, INTERFAZ) 
    2         VALUES(97, 20091024, 'CTA'); 

1 row created.