为什么执行sql脚本不能在水壶中工作

时间:2013-09-13 06:11:33

标签: kettle

我正在使用水壶从一个表(t1)获取数据并加入执行sql脚本工具(t2),然后在同一个表(t1)中进行插入/更新

这是我的转换

表格输入工具

select stud_id,mark from student; 

执行sql脚本

select s.stud_id,ifnull(m.mark,0) as mark from mark as m inner join student as s on (s.stud_id=m.stud_id) where s.student_id='?'

字段:stud_id

插入/更新工具

  • :学生
  • 检查:stud_id = stud_id
  • 更新:mark = mark

当我运行它时,它已成功运行,但未在目标表中插入或更新值。

1 个答案:

答案 0 :(得分:2)

如果Execute SQL Script步骤是我认为您所指的步骤,则它不会生成输出。它是在转换中形成一堆SQL语句并单独运行它们。我现在不在PDI前面,但我相信运行动态SQL语句并将其输出添加到数据流的方法是Execute Dynamic SQL步骤。

从不如此,在您的情况下,我会使用Database Join步骤。此步骤准备语句,只是为到达转换的每一行重新执行查询计划,将数据替换为参数标记。更加友好。