您的位置:首页 > 编程语言 > Java开发

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

2018-01-04 14:43 1631 查看

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


2 、必须要参考https://www.cnblogs.com/janehoo/p/5648876.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐