2

我正在使用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
  • 更新:标记=标记

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

4

1 回答 1

2

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

无论如何,在你的情况下,我会使用一个Database Join步骤。此步骤准备语句并为到达转换的每一行重新执行查询计划,将数据替换为参数标记。对性能更加友好。

于 2013-09-13T20:27:33.997 回答