Kettle同步数据报错:KettleDatabaseException:java.lang.ArrayIndexOutOfBoundsException

错误信息1:
2018/01/04 14:42:29 - geBiz_app_common.0 - ERROR (version 7.0.0.0-25, build 1 from 2016-11-05 15.35.36 by buildguy) : org.pentaho.di.core.exception.KettleDatabaseException: 
2018/01/04 14:42:29 - geBiz_app_common.0 - An error occurred executing SQL: 
2018/01/04 14:42:29 - geBiz_app_common.0 - SELECT
2018/01/04 14:42:29 - geBiz_app_common.0 -  *
2018/01/04 14:42:29 - geBiz_app_common.0 - FROM BIZ_APP_COMMON where UPDATE_TIME>?
2018/01/04 14:42:29 - geBiz_app_common.0 - 
2018/01/04 14:42:29 - geBiz_app_common.0 - java.lang.ArrayIndexOutOfBoundsException
2018/01/04 14:42:29 - geBiz_app_common.0 - 
2018/01/04 14:42:29 - geBiz_app_common.0 -  at org.pentaho.di.core.database.Database.openQuery(Database.java:1764)
2018/01/04 14:42:29 - geBiz_app_common.0 -  at org.pentaho.di.trans.steps.tableinput.TableInput.doQuery(TableInput.java:239)
2018/01/04 14:42:29 - geBiz_app_common.0 -  at org.pentaho.di.trans.steps.tableinput.TableInput.processRow(TableInput.java:140)
2018/01/04 14:42:29 - geBiz_app_common.0 -  at org.pentaho.di.trans.step.RunThread.run(RunThread.java:62)
2018/01/04 14:42:29 - geBiz_app_common.0 -  at java.lang.Thread.run(Thread.java:748)

这里写图片描述

这里写图片描述

错误信息2:
2018/01/04 14:46:57 - geBiz_app01.0 - ERROR (version 7.0.0.0-25, build 1 from 2016-11-05 15.35.36 by buildguy) : org.pentaho.di.core.exception.KettleDatabaseException: 
2018/01/04 14:46:57 - geBiz_app01.0 - An error occurred executing SQL: 
2018/01/04 14:46:57 - geBiz_app01.0 - SELECT
2018/01/04 14:46:57 - geBiz_app01.0 -  *
2018/01/04 14:46:57 - geBiz_app01.0 - FROM BIZ_APP01 where N_APP_ID in(select N_APP_ID from BIZ_APP_COMMON where update_time>?-2)
2018/01/04 14:46:57 - geBiz_app01.0 - 
2018/01/04 14:46:57 - geBiz_app01.0 - program err:org.joda.time.IllegalFieldValueException: Cannot parse "0000-00-00 00:00:00": Value 0 for yearOfEra must be in the range [1,292278993]

这里写图片描述

问题描述:
  • mysql数据库同步数据到oracle
  • 存在日期格式字段
问题解决:
  • 1 、因为mysql的日期字段存在0000-00-00这样的时间。
    但在oracle里面是不能识别0000-00-00时间的,同步之后莫名的报错。错误还不一致。
    在同步的时候将0000-00-00替换为null即可。
    mysql在5.7版本之后禁用了0000-00-00时间。
CASE WHEN DATE_FORMAT(D_END_TIME,'%Y-%m-%d')='0000-00-00' 
  THEN NULL
    ELSE D_END_TIME END D_END_TIME
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值