oracle表分区失效14400,Oracle11g:分区表数据操作出现ORA-14400异常处理详解
Oracle11g:分區(qū)表數(shù)據(jù)操作出現(xiàn)ORA-14400異常處理
問(wèn)題:
當(dāng)對(duì)已分區(qū)的表數(shù)據(jù)進(jìn)行操作(例如新增,修改),出現(xiàn)異常提示:
ORA-14400: 插入的分區(qū)關(guān)鍵字未映射到任何分區(qū)
分析:
意思說(shuō)的是插入的數(shù)據(jù)沒(méi)有相對(duì)應(yīng)的分區(qū)來(lái)存儲(chǔ),但是奇怪的是這些表建立時(shí)都是以間隔分區(qū)(INTERVAL)分區(qū)的方式建立的,按理說(shuō)新的數(shù)據(jù)進(jìn)來(lái)時(shí)會(huì)自動(dòng)創(chuàng)建新的分區(qū)來(lái)存儲(chǔ)數(shù)據(jù),不應(yīng)該再有14400錯(cuò)誤。
看了下建表語(yǔ)句,發(fā)現(xiàn)建立分區(qū)時(shí)partition by range(col_name)下面并沒(méi)有INTERVAL關(guān)鍵字,問(wèn)題出現(xiàn)了,建表的時(shí)候明明指定了INTERVAL分區(qū),為什么在plsql中查看建表語(yǔ)句INTERVAL消失了呢,做了下測(cè)試,新建了一個(gè)range分區(qū)表,插入數(shù)據(jù)后會(huì)提示14400錯(cuò)誤,但是對(duì)interval插入數(shù)據(jù)就不會(huì)提示錯(cuò)誤,所以我的猜想是雖然建表語(yǔ)句中并未出現(xiàn)interval關(guān)鍵字,但是interval分區(qū)還是不變的,具體為什么不顯示,有待考證。
原因是在創(chuàng)建分區(qū)表的時(shí)候直接復(fù)制的建表語(yǔ)句,并沒(méi)有新增interval關(guān)鍵字,所以本意想建的是interval分區(qū),但是建成了range分區(qū),解決方法也很簡(jiǎn)單,將原有的range轉(zhuǎn)換為interval;
解決方案:
ALTER TABLE table_name SET INTERVAL(NUMTOYMINTERVAL(1, 'MONTH'));
總結(jié)
以上是生活随笔為你收集整理的oracle表分区失效14400,Oracle11g:分区表数据操作出现ORA-14400异常处理详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python实现截图范围框跟随_教你用P
- 下一篇: WIN7无法卸载掉中文繁体注音输入法