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)

Kettle同步数据报错:KettleDatabaseException:java.lang.ArrayIndexOutOfBoundsException_第1张图片

Kettle同步数据报错:KettleDatabaseException:java.lang.ArrayIndexOutOfBoundsException_第2张图片

错误信息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]

Kettle同步数据报错:KettleDatabaseException:java.lang.ArrayIndexOutOfBoundsException_第3张图片

问题描述:

  • 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
  • 2 、必须要参考https://www.cnblogs.com/janehoo/p/5648876.html

你可能感兴趣的:(kettle,Oralce)