2

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

4

2 回答 2

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
于 2009-12-01T09:15:40.307 回答
0

如果您指的是范围分区表并且使用的是 11g,请查看使用间隔分区定义表。这类似于范围分区,只是 Oracle 会自动为您创建新分区或拆分现有分区。如果您使用的是较早版本,那么文森特创建 MAXVALUE 分区的建议就是范围分区的答案。

于 2009-12-01T12:51:24.250 回答