select partition_name,column_name,high_value,partition_position

from ALL_TAB_PARTITIONS a , ALL_PART_KEY_COLUMNS b

where table_name='YOUR_TABLE' and a.table_name = b.name;

此查询列出用作键的列名称和允许的值.确保插入允许的值(high_value).否则,如果定义了默认分区,它就会去那里.

编辑:

我认为,你的TABLE DDL会是这样的.

CREATE TABLE HE0_DT_INF_INTERFAZ_MES

(

COD_PAIS NUMBER,

FEC_DATA NUMBER,

INTERFAZ VARCHAR2(100)

)

partition BY RANGE(COD_PAIS, FEC_DATA)

(

PARTITION PDIA_98_20091023 VALUES LESS THAN (98,20091024)

);

这意味着我创建了一个包含多个列的分区,其值小于复合范围(98,20091024);

这是第一个COD_PAIS

98, 20091024 FAIL

98, 20091023 PASS

99, ******** FAIL

97, ******** PASS

< 98, ******** PASS

所以下面的INSERT失败了ORA-14400;因为INSERT中的(98,20091024)与DDL中的那个相等但不小于它.

SQL> INSERT INTO HE0_DT_INF_INTERFAZ_MES(COD_PAIS, FEC_DATA, INTERFAZ)

VALUES(98, 20091024, 'CTA'); 2

INSERT INTO HE0_DT_INF_INTERFAZ_MES(COD_PAIS, FEC_DATA, INTERFAZ)

*

ERROR at line 1:

ORA-14400: inserted partition key does not map to any partition

但是,我尝试(97,20091024),它经历了

SQL> INSERT INTO HE0_DT_INF_INTERFAZ_MES(COD_PAIS, FEC_DATA, INTERFAZ)

2 VALUES(97, 20091024, 'CTA');

1 row created.

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐