Sud*_*sht 1 pentaho kettle pdi
我有一份工作,其中有两个转换.
转换获取传递给另一个转换的数据列表.这里它执行第一次转换的每一行传递.
在我用过的第二次转换中
"从结果中获取行" - >"表输入"
在"从结果中获取行"中有五个字段但在表输入中我只需要使用第2个位置和第3个位置字段.
即使我试图给单个参数"?" 它给出错误
"2017/06/29 15:11:02 - 从table.0获取数据 - 在准备好的声明上设置值#3 [String]错误2017/06/29 15:11:02 - 从table.0获取数据 - 参数索引超出范围(3>参数数量,即2)."
我的查询非常简单select*from table where col1 =?和col2 =?
我怎样才能做到这一点?错误?我做错了吗?
您还可以为参数指定名称,以便查询成为
select * from table where col1="${param2}" and col2="${param3}".
不要忘记选中"在脚本中替换变量"复选框,并使引号适应您的sql方言(例如:'${param1}'对于SQL-Server).
注意,param2并且param3必须存在于转换的设置/参数中,没有${...}装饰和不破坏SQL的值.
可以在先前的变换中使用Set variables步骤(变量和参数在第一近似中是同义的)和至少范围来设置或改变参数的值Valid in the parent job.
当然,如果您为了遗留目的或任何其他原因坚持使用未命名的参数,您有责任告诉PDI第一个被丢弃的参数(例如where (? is null or 0=0) and col1=? and col2=?,
| 归档时间: |
|
| 查看次数: |
8214 次 |
| 最近记录: |