2009-12-01 27 views
1

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

+0

顾名思义,这似乎是不可能的! – 2009-12-01 06:42:50

+0

你可以通过交换分区来做到这一点,而无需验证。但是,分区清除算法稍后将无法找到数据。你能更具体地了解你的情况吗? – Pop 2009-12-01 13:40:45

回答

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 
+0

谢谢..很好的解释 – 2009-12-01 13:20:48

0

范围分区表并正在使用11g,查看间隔分区定义表。这与范围分区类似,只不过Oracle会自动为您创建新分区或分割现有分区。如果你使用的是早期版本,那么Vincent建议创建一个MAXVALUE分区是范围分区的答案。

相关问题