1. 程式人生 > >Oracle11g:分區表數據操作出現ORA-14400異常處理

Oracle11g:分區表數據操作出現ORA-14400異常處理

log 明顯 問題 出現 bold 查看 奇怪 方案 mint

Oracle11g:分區表數據操作出現ORA-14400異常處理

問題:

  當對已分區的表數據進行操作(例如新增,修改),出現異常提示:

ORA-14400: 插入的分區關鍵字未映射到任何分區

分析:

  意思說的是插入的數據沒有相對應的分區來存儲,但是奇怪的是這些表建立時都是以間隔分區(INTERVAL)分區的方式建立的,按理說新的數據進來時會自動創建新的分區來存儲數據,不應該再有14400錯誤。

  看了下建表語句,發現建立分區時partition by range(col_name)下面並沒有INTERVAL關鍵字,問題出現了,建表的時候明明指定了INTERVAL分區,為什麽在plsql中查看建表語句INTERVAL消失了呢,做了下測試,新建了一個range分區表,插入數據後會提示14400錯誤,但是對interval插入數據就不會提示錯誤,所以我的猜想是雖然建表語句中並未出現interval關鍵字,但是interval分區還是不變的,具體為什麽不顯示,有待考證。

  文章開頭說的問題的答案就很明顯了,是在創建分區表的時候直接復制的建表語句,並沒有新增interval關鍵字,所以本意想建的是interval分區,但是建成了range分區,解決方法也很簡單,將原有的range轉換為interval;

解決方案:

ALTER TABLE table_name SET INTERVAL(NUMTOYMINTERVAL(1, MONTH));

  

Oracle11g:分區表數據操作出現ORA-14400異常處理