{channel.title!channel.name} - 楚淮公司周东林

Kettle Spoon导数据报Couldn't get row from result set

今天将mysql数据库倒入至ORACLE数据库的时候报错,一直都以为是数据长度问题,仔细查了表才发现不是长度问题,是数据有问题。


报错提示:

2017/12/06 11:07:48 - 表输入.0 - ERROR (version 6.1.0.1-196, build 1 from 2016-04-07 12.08.49 by buildguy) : Unexpected error
2017/12/06 11:07:48 - 表输入.0 - ERROR (version 6.1.0.1-196, build 1 from 2016-04-07 12.08.49 by buildguy) : org.pentaho.di.core.exception.KettleDatabaseException:
2017/12/06 11:07:48 - 表输入.0 - Couldn't get row from result set
2017/12/06 11:07:48 - 表输入.0 -
2017/12/06 11:07:48 - 表输入.0 - Timestamp : Unable to get timestamp from resultset at index 19
2017/12/06 11:07:48 - 表输入.0 - Value '1 170505040010
0170524401133040100$贵州这里是数据库中字段内容为了防止信息泄露给改了2017-05-08 00:00:00$贵州省这里是数据库中字段内容为了防止信息泄露给改了

Timestamp : Unable to get timestamp from resultset主要看这条应该是mysql  的datetime 数据库格式导出到 oracle 的 timestamp 格式报错,看了下mysql有条数据是 0000-00-00 00:00:00 导致插入到 oracle 数据库中报错,设置其中值为 NULL 问题解决。

顺道解决下 Kettle Spoon 报错乱码问题(只是报错乱码,日志不乱码),修改 Spoon.bat 文件。大概在94行,"-XX:MaxPermSize=256m" 后面加上 "-Dfile.encoding=UTF-8" 记得要用空格分隔,保留引号。