Sì, il messaggio di errore è in qualche modo fuorviante, ma fa riferimento all'ultima partizione STATICAMENTE creata (nella tabella originale DDL prima che Oracle iniziasse a creare automaticamente le partizioni .Penso che l'unico modo per evitare ciò è creare un elemento " MINVAL" partizione che si è sicuri non sarà mai utilizzato e quindi rilasciare le partizioni reali di sopra di questo
[Edit dopo scambio di commenti]
Suppongo che questo banco di prova riproduce il problema:.
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'));
Quando faccio questo, posso rilasciare le partizioni p0, p1 e p2 ma ottengo il tuo errore quando tento di rilasciare p3 anche se c'è una partizione generata dal sistema oltre questa.
L'unica soluzione che ho trovato è stato quello di ridefinire temporaneamente il partizionamento tabella:
alter table test set interval();
e poi cadere p3 partizione. Poi si può ridefinire il partizionamento come da specifica originale da:
alter table test set INTERVAL(NUMTODSINTERVAL(1, 'DAY'));
Dal nome della partizione posso dire che questo è stato creato automaticamente e la cosa più strana è che sono stato in grado di eliminare partizioni create staticamente prima di quella. In ogni caso volevo provare il tuo suggerimento e ho ricevuto questo errore: alter table TABLE1 aggiungi test di partizione VALORI MENO DI ('07 -LUG-09 11.59.00.000000000 PM '); ERRORE alla riga 1: ORA-14760: ADD PARTITION non è consentito su oggetti partizionati a intervalli Qualche idea? Grazie, PJ –
Mi dispiace, ho dimenticato di dire grazie :) –
Hmmm ... Ho incontrato il tuo problema ed è stato il problema di posizionamento STATICO vs. DINAMICO nel mio caso. Quando ho menzionato la partizione MINVAL, stavo pensando di ricreare la tabella con questa singola partizione (e il partizionamento dell'intervallo definito) e quindi reinserire i dati - è possibile nella tua situazione? – dpbradley