如附图所示。 只有当表输入的计数值为<>时才需要传递给执行SQL步骤0.Else它将移动到dummy并且不会去执行process.But它不工作并且表被删除,这实际上是用SQL步骤编写的查询并且也初始化虚拟。(过滤条件是整数,所以表输入计数值)
答案 0 :(得分:1)
如果您遇到问题,有一些因素需要注意:
PDI中的所有进程都是并行初始化的。因此,如果您在转换中有步骤(如表输入,表格输出等)。执行ktr时,所有这些步骤都会一起初始化。
Pentaho Kettle中的“执行SQL脚本”步骤是自触发的。它在转换的初始化阶段执行。检查此wiki。
<强>解决方案:强>
检查下图:
<强> 1。在SQL步骤中启用“每行执行”:
想法是在ktr(执行SQL脚本)的初始化阶段停止执行查询。因此,通过勾选“每行执行”选项将确保在接收到行时执行SQL步骤,而不是在初始化期间执行。
检查下图:
<强> 2。使用“ABORT”步骤 (仅作为建议)
使用'虚拟步骤'没有错,但我觉得使用“中止”步骤,这将确保一旦“过滤步骤”返回错误条件,中止执行中的当前转换。
3。如果您不喜欢上述两种解决方案,唯一的出路就是使用“简单评估”在作业级别创建解决方案步。这将解决您的问题。
附上here中的示例代码。
希望有所帮助:)