Ja, die Fehlermeldung ist etwas irreführend, aber bezieht sich auf die letzte STATISCH erstellte Partition (in Ihrer ursprünglichen Tabelle DDL, bevor Oracle begann, die Partitionen automatisch zu erstellen. Ich denke, der einzige Weg, dies zu vermeiden ist ein künstliches erstellen " MINVAL“Partition, die Sie sicher sind, wird nie und dann über diese die wirklichen Partitionen fallen verwendet werden
[Bearbeiten nach dem Austausch von Kommentaren]
ich nehme an, das Testfall reproduziert Ihr Problem.
CREATE TABLE test
(t_time DATE
)
PARTITION BY RANGE (t_time)
INTERVAL(NUMTODSINTERVAL(1, 'DAY'))
(PARTITION p0 VALUES LESS THAN (TO_DATE('09-1-2009', 'MM-DD-YYYY')),
PARTITION p1 VALUES LESS THAN (TO_DATE('09-2-2009', 'MM-DD-YYYY')),
PARTITION p2 VALUES LESS THAN (TO_DATE('09-3-2009', 'MM-DD-YYYY')),
PARTITION p3 VALUES LESS THAN (TO_DATE('09-4-2009', 'MM-DD-YYYY'))
);
insert into test values(TO_DATE('08-29-2009', 'MM-DD-YYYY'));
insert into test values(TO_DATE('09-1-2009', 'MM-DD-YYYY'));
insert into test values(TO_DATE('09-3-2009', 'MM-DD-YYYY'));
insert into test values(TO_DATE('09-10-2009', 'MM-DD-YYYY'));
Wenn ich dies tue, kann ich die Partitionen p0, p1 und p2 fallen lassen, aber Sie erhalten Ihren Fehler, wenn Sie versuchen, p3 zu löschen, obwohl es darüber hinaus eine vom System generierte Partition gibt.
Die einzige Abhilfe, die ich finden konnte, war vorübergehend die Tabellenpartitionierung Neudefinition von:
alter table test set interval();
und dann Partition p3 fallen. Dann können Sie die Partitionierung gemäß der ursprünglichen Spezifikation neu definieren, indem:
alter table test set INTERVAL(NUMTODSINTERVAL(1, 'DAY'));
Mit dem Namen der Partition kann ich sagen, das wurde automatisch erstellt und die seltsamste Sache ist, dass ich statisch erstellte Partitionen vor diesem löschen konnte. Jedenfalls wollte ich Ihren Vorschlag versuchen, und ich habe diesen Fehler: alter table TABLE1 Partitionstest hinzufügen WERTE WENIGER als ('07-Juli-09 11.59.00.000000000 PM '); FEHLER bei Zeile 1: ORA-14760: ADD PARTITION ist nicht erlaubt auf Intervall partitionierte Objekte Irgendwelche Ideen? Danke, PJ –
Sorry, vergessen zu sagen, danke :) –
Hmmm ... Ich lief auf Ihr Problem und es war das STATIC vs. DYNAMIC Positionierungsproblem in meinem Fall. Als ich die MINVAL-Partition erwähnte, dachte ich darüber nach, die Tabelle mit dieser einzelnen Partition (und der definierten Intervallpartitionierung) neu zu erstellen und dann die Daten neu einzufügen - ist das in Ihrer Situation möglich? – dpbradley