Oracle11g:分區表數據操作出現ORA-14400異常處理
阿新 • • 發佈:2018-03-30
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異常處理