2009-12-01 63 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分區是範圍分區的答案。

相關問題