工作中,数据库是用的oracle,ora-14400这个报错,之前也出现过,处理好了,但没有写笔记,今天又遇到了,又要去百度。于是决定总结一下,并分享出来。
遇到这个问题,首先通过查询,查看分区情况。
select * from user_tab_partitions t
where t.table_name = 'Table_Name';
Table_Name是需要查询的表名。
查出来之后,你会发现,你当前所对应的表分区,没有当前时间所在的分区,接下来我们可以通过给表增加分区来解决
alter table Table_Nameadd PARTITION CT_2016_08 values less than(to_date('2016-08-01 00:00:00','yyyy-MM-dd HH24:mi:ss')) tablespace busdb;
中间走了个弯路。 看了一个错误的帖子,说是执行下面的语句
alter table Table_Nameadd PARTITION CT_2016_08 values less than('2016-08-01 00:00:00') tablespace busdb;
但执行的时候会报错。
于是我再从select查出来的结果分析了一下,修改成正确的方式(to_date方式),就没问题了。
一个简单的报错,记录一下,以便以后再来翻阅,如果您也遇到了同样的问题,希望这点小经验能够帮到您。