¿Cómo insertar datos en la tabla de particiones que no está definida en la partición?

StackOverflow https://stackoverflow.com/questions/1824341

  •  22-07-2019
  •  | 
  •  

Pregunta

Cualquiera puede decirme cómo podemos insertar datos en una tabla particionada que no satisface la condición de partición.

¿Fue útil?

Solución

obtendrá un error ORA-14400:

SQL> CREATE TABLE t (ID NUMBER)
  2  PARTITION BY RANGE (ID)
  3  (  PARTITION t1 VALUES LESS THAN (100),
  4     PARTITION t2 VALUES LESS THAN (200)
  5  );

Table created

SQL> insert into t values (1);

1 row inserted

SQL> insert into t values (201);

insert into t values (201)
            ~
ORA-14400: inserted partition key does not map to any partition

Para evitar esto, puede usar una partición predeterminada con MENOS QUE (MAXVALUE) :

SQL> CREATE TABLE t (ID NUMBER)
  2  PARTITION BY RANGE (ID)
  3  (  PARTITION t1 VALUES LESS THAN (100),
  4     PARTITION t2 VALUES LESS THAN (200),
  5     PARTITION tmax VALUES LESS THAN (MAXVALUE)
  6  );

Table created

Otros consejos

Si te refieres a tablas con particiones de rango y estás usando 11g, busca definir las tablas con particiones por intervalos. Esto es similar a la partición de rango, excepto que Oracle creará nuevas particiones o dividirá las particiones existentes automáticamente para usted. Si está en una versión anterior, entonces la sugerencia de Vincent de crear una partición MAXVALUE es la respuesta para la partición de rango.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top