我正在使用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
插入/更新工具
当我运行此命令时,它已成功运行,但值未在目标表中插入或更新。
如果
Execute SQL Script
步骤是我认为您所指的步骤,则它不会生成输出。它用于在转换中形成一堆 SQL 语句并单独运行它们。我现在不在 PDI 前面,但我相信运行动态 SQL 语句并将其输出添加到数据流的方法是 Execute Dynamic SQL
步骤。
无论如何,在你的情况下,我会使用
Database Join
步骤来代替。此步骤准备语句,并为到达转换的每一行重新执行查询计划,将数据替换为参数标记。性能更加友好。
执行 SQL 步骤用于插入、删除、更新、创建等。
对于 SELECT 查询,您将使用表输入。