Pentaho 表输入中的参数整数

Pentaho 表输入中的参数整数,pentaho,pentaho-spoon,pentaho-data-integration,Pentaho,Pentaho Spoon,Pentaho Data Integration,我有一份工作和两次转变。 在第一次转换中,我有表输入,从表中获取max(id)。 接下来,我将行复制到结果->写入日志->设置变量。 在集合变量中,我有字段名=max\u id和变量名=max\u id 在第二次转换中,我得到了名为max_id、变量为${max_id}、类型为Integer->Write to log的变量 接下来是表输入= select id AS CCOLUMNS from REPO.dbo.STATUS with (nolock) where id = ${m

我有一份工作和两次转变。 在第一次转换中,我有表输入,从表中获取max(id)。 接下来,我将行复制到结果->写入日志->设置变量。 在集合变量中,我有字段名=max\u id和变量名=max\u id

在第二次转换中,我得到了名为max_id、变量为${max_id}、类型为Integer->Write to log的变量

接下来是表输入=

   select id AS CCOLUMNS from REPO.dbo.STATUS with (nolock)
   where id = ${max_id}
我进入日志:

  2019/09/11 15:21:33 - Merge Join.0 - offending row : [max_id Integer(9)]
  2019/09/11 15:21:33 - Merge Join.0 - 
  2019/09/11 15:21:33 - Merge Join.0 - Error setting value #1 [Integer(9)] on prepared statement
  2019/09/11 15:21:33 - Merge Join.0 - The index 1 is out of range.
  2019/09/11 15:21:33 - Merge Join.0 - 
  2019/09/11 15:21:33 - Merge Join.0 - 
  2019/09/11 15:21:33 - Merge Join.0 - 
  2019/09/11 15:21:33 - Merge Join.0 -  at org.pentaho.di.core.database.Database.getQueryFieldsFallback(Database.java:2354)
  2019/09/11 15:21:33 - Merge Join.0 -  at org.pentaho.di.core.database.Database.getQueryFields(Database.java:2193)
  2019/09/11 15:21:33 - Merge Join.0 -  at org.pentaho.di.trans.steps.tableinput.TableInputMeta.getFields(TableInputMeta.java:253)
  2019/09/11 15:21:33 - Merge Join.0 -  ... 9 more
  2019/09/11 15:21:33 - Merge Join.0 - Caused by: org.pentaho.di.core.exception.KettleDatabaseException: 
  2019/09/11 15:21:33 - Merge Join.0 - offending row : [max_id Integer(9)]
  2019/09/11 15:21:33 - Merge Join.0 - 
  2019/09/11 15:21:33 - Merge Join.0 - Error setting value #1 [Integer(9)] on prepared statement
  2019/09/11 15:21:33 - Merge Join.0 - The index 1 is out of range.
  2019/09/11 15:21:33 - Merge Join.0 - 
  2019/09/11 15:21:33 - Merge Join.0 - 
  2019/09/11 15:21:33 - Merge Join.0 -  at org.pentaho.di.core.database.Database.setValues(Database.java:1076)
  2019/09/11 15:21:33 - Merge Join.0 -  at org.pentaho.di.core.database.Database.getQueryFieldsFallback(Database.java:2328)
  2019/09/11 15:21:33 - Merge Join.0 -  ... 11 more
  2019/09/11 15:21:33 - Merge Join.0 - Caused by: org.pentaho.di.core.exception.KettleDatabaseException: 
  2019/09/11 15:21:33 - Merge Join.0 - Error setting value #1 [Integer(9)] on prepared statement
  2019/09/11 15:21:33 - Merge Join.0 - The index 1 is out of range.
  2019/09/11 15:21:33 - Merge Join.0 - 
  2019/09/11 15:21:33 - Merge Join.0 -  at org.pentaho.di.core.row.value.ValueMetaBase.setPreparedStatementValue(ValueMetaBase.java:5165)
  2019/09/11 15:21:33 - Merge Join.0 -  at org.pentaho.di.core.database.Database.setValue(Database.java:1058)
  2019/09/11 15:21:33 - Merge Join.0 -  at org.pentaho.di.core.database.Database.setValues(Database.java:1074)
  2019/09/11 15:21:33 - Merge Join.0 -  ... 12 more
  2019/09/11 15:21:33 - Merge Join.0 - Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: The index 1 is out of range.
  2019/09/11 15:21:33 - Merge Join.0 -  at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:227)
  2019/09/11 15:21:33 - Merge Join.0 -  at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.setterGetParam(SQLServerPreparedStatement.java:919)
  2019/09/11 15:21:33 - Merge Join.0 -  at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.setNull(SQLServerPreparedStatement.java:1491)
  2019/09/11 15:21:33 - Merge Join.0 -  at org.pentaho.di.core.row.value.ValueMetaBase.setPreparedStatementValue(ValueMetaBase.java:5052)

当您通过在“从步骤插入数据”中指定步骤,将表输入步骤配置为使用来自流的传入字段时,就会发生这种情况。当您使用命名变量(和变量替换)时,不需要这样做

手动清除该步骤的名称,就可以开始了

有关更多详细信息,请参见我的回答: