kettle从入门到精通 第七十七课 ETL之kettle kettle执行存储过程,接收数据集

场景:kettle调用存储过程,存储过程中通过select * from table 方式返回结果集,kettle接收结果集。

解决方案:1)借助临时表。2)表输入步骤。今天主要讲解表输入。

1、创建一个无参存储过程,脚本中通过select * from t1 返回数据集。脚本如下:

sql 复制代码
use test;
drop procedure if exists sp_without_param1;
delimiter //
create procedure sp_without_param1()
begin
      -- 查询数据集
      select * from t1;
  end //
delimiter ;

拖动取表输入步骤、写日志步骤到画布,表输入步骤sql填写call sp_without_param1,如下图所示:

保存,然后点击运行按钮,存储过程中的数据集被正常打印出来,如下图所示:

2、创建一个只有入参的存储过程,脚本中通过select * from t1 where id=pId;返回数据集。脚本如下:

sql 复制代码
use test;
drop procedure if exists sp_with_param2;
delimiter //
create procedure sp_with_param2(IN pId VARCHAR(255))
begin
      -- 查询数据集
      select * from t1 where id=pId;
  end //
delimiter ;

表输入步骤sql填写call sp_without_param2("1"),保存&点击运行按钮,数据集正常打印。如下图所示:

3、创建一个有入参和出参的存储过程,脚本中通过select * from t1 where id=pId;返回数据集。脚本如下:

sql 复制代码
use test;
drop procedure if exists sp_with_param3;
delimiter //
create procedure sp_with_param3(IN pId VARCHAR(255) ,OUT result VARCHAR(255))
begin
      -- 查询数据集
      select * from t1 where id=pId;
      set result="done";
  end //
delimiter ;

表输入步骤sql填写call sp_without_param3("1",@outputParm)。如下图所示:

使用表输入步骤单独获取out参数,sql为select @outputParam;,如下图所示

保存&点击运行,结果集和out参数正常打印。

相关推荐
geovindu2 小时前
sql:SQL Pagination and Limiting Results using PorstgreSQL 18.0
大数据·数据仓库·sql·postgresql·数据库开发·数据库架构·1024程序员节
莫叫石榴姐12 小时前
半导体业务数仓建模: Lot、Wafer、Die、Recipe、OEE、YMS 建模要点
数据仓库·sql·面试·职场和发展·矩阵·1024程序员节
java_logo2 天前
Docker 部署 Hue:轻松搭建数据库与数据仓库 SQL 查询平台
数据库·数据仓库·sql·docker·hue·部署教程·轩辕镜像
Francek Chen3 天前
【大数据处理与分析】数据仓库Hive:08 Impala
数据仓库·hive·hadoop·数据分析·impala
A smirK squirrel3 天前
Windows环境下Minio本地安装部署
数据仓库
ha_lydms3 天前
Window Functions(窗口函数)
大数据·数据仓库·hadoop·spark·数据处理·dataworks·maxcompute
geovindu4 天前
sql:Managing Complex Joins and Subqueries in SQL using mysql 9.0
大数据·数据库·数据仓库·sql·mysql·数据库开发·数据库架构
骑着蜗牛撵大象3274 天前
字节序、TLV 到 netlink:Linux 网络消息的编解码全链路
linux·网络·php·etl·序列化·字节序·tlv
zhangzeyuaaa4 天前
StarRocks 的技术版图:在分析、检索与流处理之间找到位置
大数据·数据仓库