前言
项目中需要用到kettle来批量update表数据,大致分为两类。
1、不需要传参 只需执行sql
2、需要传参
1、不需要传参时
不需要传参比较简单,但注意 sql脚本控件 中的配置项“执行每一行”不要勾选。
2、需要传参时
step 1、设置参数
在主kjb中新建一个“设置变量”控件,定义想要定义的全局参数,其中值一列可以填写具体的值,也可以使用
符
号
代
替
,
这
时
候
代
表
这
个
值
需
要
传
参
进
来
。
当
使
用
了
{}符号代替,这时候代表这个值需要传参进来。 当使用了
符号代替,这时候代表这个值需要传参进来。当使用了{}的方式获取参数值,需要做如下配置。
在主kjb文件中双击空白位置,选择“命名参数”选项卡,命名参数一列填写刚才${}中的参数名,默认值根据需要给。
step 2、ktr的配置
在要执行sql的ktr中,做如下配置。
下面根据图片中的数字,分别解释。
1、创建一个“获取系统信息控件”,不做任何操作。
2、在“执行sql脚本”控件中写入sql语句,把参数位置替换成${}占位符。
3、“执行一行” 需要被勾选
4、这里为空
5、定义四个日志字段,结合6可以方便我们从日志中监控sql的执行情况。
6、新建一个“写日志”控件,与“执行sql脚本”控件建立连接,点击“获取字段”,之后自可在日志中看到上面定义的四个字段的输出。