Sí, el mensaje de error es algo engañoso, pero se refiere a la última partición creada ESTÁTICAMENTE (en su tabla original DDL antes de que Oracle comenzara a crear las particiones automáticamente. Creo que la única manera de evitar esto es crear un artifical " MINVAL" partición que estás seguro de que nunca será utilizado y luego soltar las particiones reales por encima de este
[Editar después del intercambio de los comentarios]
asumo este caso de prueba reproduce el 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'));
Cuando hago esto, puedo soltar las particiones p0, p1 y p2, pero obtengo el error al intentar eliminar p3 aunque haya una partición generada por el sistema más allá de esto.
La única solución que pude encontrar fue redefinir temporalmente la partición de tablas por:
alter table test set interval();
y luego dejar caer p3 partición. A continuación, puede volver a definir la partición de acuerdo con la especificación original por:
alter table test set INTERVAL(NUMTODSINTERVAL(1, 'DAY'));
Por el nombre de la partición puedo decir que esta se creó automáticamente y lo más extraño es que pude eliminar las particiones creadas estáticamente antes de esa. De todos modos, quería probar su sugerencia y obtuve este error: alter table TABLE1 add partition test VALUES MENOS DE ('07 -JUL-09 11.59.00.000000000 PM '); ERROR en la línea 1: ORA-14760: ADD PARTITION no está permitido en Intervalo de objetos particionados ¿Alguna idea? Gracias, PJ –
Lo siento, se olvidó de decir gracias :) –
Hmmm ... Me encontré con su problema y fue el problema de posicionamiento ESTÁTICO vs. DINÁMICO en mi caso. Cuando mencioné la partición MINVAL, estaba pensando en volver a crear la tabla con esta única partición (y la partición de intervalo definida) y luego volver a insertar los datos: ¿es posible en su situación? – dpbradley