如何在分区表中插入未在分区中定义的数据?

时间:2009-12-01 06:24:41

标签: oracle partitioning

任何人都可以告诉我如何在分区表中插入不满足分区条件的数据。

2 个答案:

答案 0 :(得分:5)

您将收到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

为避免这种情况,您可以使用LESS THAN (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

答案 1 :(得分:0)

如果您指的是范围分区表并使用11g,请查看使用间隔分区定义表。这类似于范围分区,但Oracle将自动为您创建新分区或拆分现有分区。如果您使用的是早期版本,则Vincent建议创建MAXVALUE分区是范围分区的答案。