Wie Daten in Partitionstabelle einzufügen, die nicht in der Partition definiert ist?

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

  •  22-07-2019
  •  | 
  •  

Frage

Wer kann mir sagen, wie können wir Daten in partitionierten Tabelle einzufügen, die Partitionierung Bedingung nicht erfüllt.

War es hilfreich?

Lösung

Sie werden ein ORA-14400 Fehler:

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

Um dies zu vermeiden, können Sie eine Standardpartition mit LESS THAN (MAXVALUE) verwenden:

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

Andere Tipps

Wenn Sie sich beziehen bereichspartitionierte Tabellen und werden mit 11g, schauen Sie in der Definition der Tabellen mit Intervall Partitionierung. Dies ist ähnlich Partitionierung reicht, außer dass Oracle neue Partitionen oder Split vorhandene Partitionen automatisch für Sie erstellen. Wenn Sie auf einer früheren Version sind dann Vincent Vorschlag eine MAXVALUE Partition zu schaffen ist die Antwort für Bereichspartitionierung.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top