Kettle使用_8 存储过程结合获取系统信息
需求: 通过传递给kettle位置参数的方式执行存储过程。其中存储过程的需求是往tb_user(字段user_id, name)里插入一条记录(覆盖式,即有则删除;参数是用户id和用户名)。
解决方法:结合获取系统信息(设置参数名)和DB存储过程(指定数据库连接和参数)组件解决。
Step1:新建一个转换。
Step2: 拖动一个获取系统信息到转换里,该组件位于转化的输入分类下。
Step3:配置获取系统信息组件(这里配置了两个参数,详见需求部分。)
Step4:拖动查询分类下的DB存储过程组件
Step5:在数据库里编写存储过程(这里以Mysql为例)
DROP PROCEDURE IF EXISTS kettlexp.sp_adduser_v2;
CREATE PROCEDURE kettlexp.`sp_adduser_v2`( IN userid int,v_name varchar(100))
BEGIN
DELETE FROM tb_user WHERE id = userid AND name = v_name;
INSERT INTO tb_user(id,name) VALUES(userid,v_name);
commit;
END;
Step6:配置DB存储过程组件
新建数据库连接示意:
Step7:按住SHIFT连接获取系统信息组件和DB存储过程组件。
Step8:点击执行转换。
Step9:数据库里验证结果。
完整流程示意: