当我使用表格输入并从步骤中插入数据来替换?在sql中。
例如,
select * from a where b in (?)
。
,sql是select * from a where b in ('0,1,2,3')
如何在没有'?
的情况下执行它由于
答案 0 :(得分:1)
我看到有三种可能的方法。我猜你喜欢选择'C'是最好的。
A)如果您知道IN子句总是只有4个值,您可以通过将4个值存储在Job变量中并使用Get Variables步骤将它们读入单行然后将该行流入数据库查找步骤,其SQL如下所示:
select * from a where b in (?, ?, ?, ?)
并替换单个传入行中的值。
B)如果你有一个可变数量的值,我会考虑将值列表标准化为行,也许是使用Split Fields to Rows步骤,使用Add Constants为每行添加'found'值,然后流动那些进入Stream Lookup。然后在Stream Lookup之后,将所有行'found'的值移到Dummy步骤为空。
C)在Job中构建值列表并将其作为变量传递。在表输入步骤中使用如下语句:
select * from a where b in (${varname})
并选中'替换变量脚本'。该变量将在执行之前扩展到SQL中。