Pentaho DI - Table 输入错误 "couldn't get row from result set"
Pentaho DI - Table Input error "couldn't get row from result set"
创建从 MySQL 数据库中提取的 ETL 时,我在 Pentaho 数据集成中遇到错误。
具体来说,我在名为 "Table Input" 的第一步中遇到了一个错误。连接很好,所以我知道这不是问题所在。即使是第一行我也有问题。
这段是错误日志的一部分:
2017/01/11 12:26:00 - IN R.A.L..0 - ERROR (version 7.0.0.0-25, build 1 from 2016-11-05 15.35.36 by buildguy) : Unexpected error
2017/01/11 12:26:00 - IN R.A.L..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:
2017/01/11 12:26:00 - IN R.A.L..0 - Couldn't get row from result set
2017/01/11 12:26:00 - IN R.A.L..0 -
2017/01/11 12:26:00 - IN R.A.L..0 - Unable to get value 'Date' from database resultset, index 63
2017/01/11 12:26:00 - IN R.A.L..0 - Value '0000-00-00' can not be represented as java.sql.Timestamp
2017/01/11 12:26:00 - IN R.A.L..0 -
2017/01/11 12:26:00 - IN R.A.L..0 -
我可以 "suppose" 它是声明为具有 0000-00-00 的时间戳的行中的一个值,但我检查并仔细检查,不是这样!我确实有一个时间戳,但它的值不是日志中所说的 0000-00-00,并且具有 0000-00-00 的一列不是时间戳而是日期,所以...
我显然遗漏了一些东西,否则我不会问,所以在此先感谢您的帮助!!!
如果您想知道是哪一行导致了问题,您可以在 table 输入步骤之后添加 2 个文本文件输出步骤。将一个输出步骤与真实记录连接(你会在跃点上看到绿色正确符号)-假设 output-A
和一个错误记录(你会在跃点上看到红色 X 符号) - 假设 output-B
。这样转换就不会失败,它会将导致错误的记录发送到 output-B
。通过这种方式,您可以查看哪些记录导致了问题并将其与其他记录进行比较。
感谢您抽出时间回复。我直接在pentaho论坛问了同样的问题,解决了
谢谢!
使用这个函数帮我解决了这个问题。
date_format(data_cadastro_cli,"%Y-%m-%d")
创建从 MySQL 数据库中提取的 ETL 时,我在 Pentaho 数据集成中遇到错误。
具体来说,我在名为 "Table Input" 的第一步中遇到了一个错误。连接很好,所以我知道这不是问题所在。即使是第一行我也有问题。
这段是错误日志的一部分:
2017/01/11 12:26:00 - IN R.A.L..0 - ERROR (version 7.0.0.0-25, build 1 from 2016-11-05 15.35.36 by buildguy) : Unexpected error
2017/01/11 12:26:00 - IN R.A.L..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:
2017/01/11 12:26:00 - IN R.A.L..0 - Couldn't get row from result set
2017/01/11 12:26:00 - IN R.A.L..0 -
2017/01/11 12:26:00 - IN R.A.L..0 - Unable to get value 'Date' from database resultset, index 63
2017/01/11 12:26:00 - IN R.A.L..0 - Value '0000-00-00' can not be represented as java.sql.Timestamp
2017/01/11 12:26:00 - IN R.A.L..0 -
2017/01/11 12:26:00 - IN R.A.L..0 -
我可以 "suppose" 它是声明为具有 0000-00-00 的时间戳的行中的一个值,但我检查并仔细检查,不是这样!我确实有一个时间戳,但它的值不是日志中所说的 0000-00-00,并且具有 0000-00-00 的一列不是时间戳而是日期,所以...
我显然遗漏了一些东西,否则我不会问,所以在此先感谢您的帮助!!!
如果您想知道是哪一行导致了问题,您可以在 table 输入步骤之后添加 2 个文本文件输出步骤。将一个输出步骤与真实记录连接(你会在跃点上看到绿色正确符号)-假设 output-A
和一个错误记录(你会在跃点上看到红色 X 符号) - 假设 output-B
。这样转换就不会失败,它会将导致错误的记录发送到 output-B
。通过这种方式,您可以查看哪些记录导致了问题并将其与其他记录进行比较。
感谢您抽出时间回复。我直接在pentaho论坛问了同样的问题,解决了
谢谢!
使用这个函数帮我解决了这个问题。
date_format(data_cadastro_cli,"%Y-%m-%d")