问题描述:

  工作中使用kettle将原始库中的数据抽取到标准库中,在抽取过程中报错:【ORA-14400: 插入的分区关键字未映射到任何分区】/【ORA-14400: inserted partition key does not map to any partition】

解决过程:

ORA-14400: 插入的分区关键字未映射到任何分区
ORA-06512: 在 "NMS_FMS.BATCH_SAVE", line 1109

ORA-06512: 在 line 1

at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:745)
at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:218)
at oracle.jdbc.driver.T4CCallableStatement.executeForRows(T4CCallableStatement.java:969)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1190)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3370)
at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3476)
at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:4400)
at com.mchange.v2.c3p0.impl.NewProxyCallableStatement.execute(NewProxyCallableStatement.java:3044)

  经过百度,发现出现ORA-14400是表分区出现问题。  

  1.确定该表是否已经添加了表分区。    

select partition_name,high_value from user_tab_partitions t where table_name='table_name';

  2.查询表分区绑定的字段名称。   

select * from user_part_key_columns t where name='table_name';

  3.查看当前表分区的具体情况

select * from user_tab_partitions t where table_name='table_name';

  4.查询表分区绑定的字段的最大值。注:此处的table_name应为当前表对应的原始库中的源表。

select max(key_column) from table_name t;

  5.将查询到的表分区绑定字段的最大值插入到当前表中进行测试,发现报错。

insert into table_name(table_column1,table_column2,......,key_column) values(value1,value2,......,key_value);

  6.经过以上环节确定源表中出现错误数据,并且由于错误数据的时间跨度大于当前分区的范围,导致ORA-14400错误的出现,但是由于该数据必须保留,因此对表分区进行扩展。

  7.扩展当前表分区以保证范围大于绑定字段的最大值。

alter table  table_name add partition part_key_column_029 values less than (to_date('2029-01-01 00:00:00','YYYY-MM-DD HH24:MI:SS','NLS_CALENDAR=GREGORIAN'))

       tablespace tablespace_name

       pctfree 10

        initrans 1

       maxtrans255,

......,

alter table  table_name add partition part_key_column_049 values less than (to_date('2049-01-01 00:00:00','YYYY-MM-DD HH24:MI:SS','NLS_CALENDAR=GREGORIAN'))
       tablespace tablespace_name        pctfree 10        initrans 1        maxtrans255,

  8.结束。再次使用kettle进行抽取时顺利抽取。

【Oracle】ORA-14400: 插入的分区关键字未映射到任何分区的更多相关文章

  1. ora-14400插入的分区关键字未映射到任何分区---oracle数据库表过期问题

    楼主解决这个问题ora-14400插入的分区关键字未映射到任何分区,其原因是:分区表过期. 通过使用sql直接修改Date类型的字段可以证实,修改成过期以后的时间出现下列提示,修改成过期之前的则可以. ...

  2. [Oracle]ORA-14400:插入的分区关键字未映射到任何分区

    今天在使用测试库的时候发生ORA-14400:inserted partition key does not map to any partition 解决过程: 经过百度,发现出现ORA-14400 ...

  3. 记一次Oracle分区表错误:ORA-14400: 插入的分区关键字未映射到任何分区

    https://blog.csdn.net/xdyzgjy/article/details/42238735

  4. ora-14400:插入的分区关键字未映射到任何分区

    参考:https://blog.csdn.net/rubychen410/article/details/5317553 出现该问题是由于: 1.为表设置了根据时间进行分区(PARTITION),而每 ...

  5. Oracle Ora 错误解决方案合集

    注:本文来源于 < Oracle学习笔记 --- Oracle ORA错误解决方案 > ORA-00001: 违反唯一约束条件 (.)错误说明:当在唯一索引所对应的列上键入重复值时,会触发 ...

  6. Oracle ORA

    ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常. ORA-00017: 请求会话以设置跟踪事件 ORA-00018: 超出最大会话数 OR ...

  7. ORA-14402: 更新分区关键字列将导致分区的更改

    默认情况下,oracle的分区表对于分区字段是不允许进行update操作的,如果有对分区字段行进update,就会报错——ORA-14402: 更新分区关键字列将导致分区的更改.這種情況可以通過開啟表 ...

  8. oracle分区表的建立方法(包含已经存在的表要分区)分享,非常好

    非原创 Oracle提供了分区技术以支持VLDB(Very Large DataBase).分区表通过对分区列的判断,把分区列不同的记录,放到不同的分区中.分区完全对应用透明. Oracle的分区表可 ...

  9. Oracle亿级数据查询处理(数据库分表、分区实战)

    大数据量的查询,不仅查询速度非常慢,而且还会导致数据库经常宕机(刚接到这个项目时候,数据库经常宕机o(╯□╰)o). 那么,如何处理上亿级的数据量呢?如何从数据库经常宕机到上亿数据秒查?仅以此篇文章作 ...

随机推荐

  1. Java垃圾回收机制和注解

  2. java 五十条数据分为一组

    public static void main(String[] args) { List<Integer> list = new ArrayList<>(); for(int ...

  3. io 的一些简单说明及使用

    io 流简述: i->inputStream(输入流) o->outputStream  (输出流) IO流简单来说就是Input和Output流,IO流主要是用来处理设备之间的数据传输, ...

  4. python(pygame)滑稽大战(类似飞机大战) 教程

    成品已录制视频投稿B站(本文目前实现了基础的游戏功能),点击观看项目稽忽悠不(github)地址:https://github.com/BigShuang/From-simple-to-Huaji 本 ...

  5. JavaScript获取元素尺寸和大小操作总结(转载)

    一.获取元素的行内样式 var obj = document.getElementById("test"); alert(obj.height + "\n" + ...

  6. redis安装linux(二)

    官网地址:http://redis.io/ redis的安装 第一步:安装VMware,并且在VMware中安装centos系统(参考linux教程). 第二步:将redis的压缩包,上传到linux ...

  7. [LeetCode&Python] Problem 703. Kth Largest Element in a Stream

    Design a class to find the kth largest element in a stream. Note that it is the kth largest element ...

  8. webshell导致项目崩溃

    mysql挂死,无法启动,解决mysql无法启动: /etc/my.cnf配置文件中innodb_force_recovery=1然后service mysqld start/etc/my.cnf配置 ...

  9. linux 修改配色

    PS1="\[\e[37;40m\][\[\e[32;40m\]\u\[\e[37;40m\]@\h \[\e[36;40m\]\w\[\e[0m\]]\\$ " ORvim ~/ ...

  10. 锋利的jQuery初学(5)

    层级选择器: 层级选择器 符号 解释 使用 空格 后代选择器 $("div p").css("","") + 紧邻选择器 $("d ...