分区表建表SQL如下,注意分区关键字是字符类型
create table XXXX
(
SOURCE_TYPE CHAR(2),
BIZ_TYPE CHAR(1),
DEAL_TIME VARCHAR2(14),
START_DATE CHAR(8),
START_TIME CHAR(6),
CALL_TYPE CHAR(2),
USER_ID NUMBER(16),
IMSI_NUMBER VARCHAR2(15),
MSISDN VARCHAR2(15),
。。。。。。。。。。。
。。。。。。。。。。。
)
partition by range (MSISDN)
(
partition PART1 values less than ('1350202')
tablespace TBS_TDXX
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
),
partition PART2 values less than ('1350205')
...............
...................
..........................
partition PART364 values less than ('MAXVALUE')
tablespace TBS_TDXX
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
)
);
IMP的时候报错
"TG_CDR01":"PART4"
IMP-00058: ORACLE error 14400 encountered
ORA-14400: inserted partition key does not map to any partition
最开始检查 没有开 ROW MOVEMENT;
执行命令 Alter tablename ENABLE ROW MOVEMENT;
再次IMP 还是同样的错误
检查见表脚本发现上面红色字部分 开发人员多加了个 引号
改成
partition PART364 values less than (MAXVALUE)
重新建表,问题解决
总结下 ORA-14400: inserted partition key does not map to any partition
的几个原因
1,如果插入的值没有合适的分区,会报错
2,如果插入的值包含空值,没有建MAXVALUE分区,会报错
3,没有开 ROW MOVEMENT,也有可能报错
4,本例子的这个低级错误
5,大家补充
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15112866/viewspace-442689/,如需转载,请注明出处,否则将追究法律责任。