为什么执行sql脚本在kettle中不起作用

问题描述 投票:0回答: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

插入/更新工具

  • 桌子:学生
  • 检查:螺柱_id=螺柱_id
  • 更新:标记=标记

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

kettle pentaho-spoon pentaho-data-integration
2个回答
2
投票

如果

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

无论如何,在你的情况下,我会使用

Database Join
步骤来代替。此步骤准备语句,并为到达转换的每一行重新执行查询计划,将数据替换为参数标记。性能更加友好。


0
投票

执行 SQL 步骤用于插入、删除、更新、创建等。

对于 SELECT 查询,您将使用表输入。

© www.soinside.com 2019 - 2024. All rights reserved.