kettle从入门到精通 第五十七课 ETL之kettle调用存储过程

news/2024/10/2 20:36:55

1、之前有个同学说他使用kettle执行一坨sql语句时,kettle直接卡死掉了。我给出的建议是使用存储过程,果不其然使用存储过程顺利解决问题。

今天我们一起来学习下kettle如何调用存储过程,这里基于mysql进行演示。调用存储过程有两种方法:使用步骤【调用DB存储过程】或者步骤【执行SQL脚本】。

2、调用DB存储过程-无参存储过程。

1)创建无参数存储过程sp_without_param

use test;
drop procedure if exists sp_without_param;
delimiter //
create procedure sp_without_param()
begin-- 打印信息select 'sp_without_param  我执行了'   from dual;end //
delimiter ;

2)将步骤【调用DB存储过程】拖到画布上,然后通过写日志打印执行结果,如下图所示:

 3)步骤【DB存储过程】设置

步骤名称:自定义步骤名称。

数据库连接:选择定义好的数据库连接。

存储过程名称:填写需要调用的存储过程名称,这里填写sp_without_param。

启用自动提交:设置数据库事物是否自动提交。 

返回值名称:函数调用的结果的名称;如果是一个存储过程,留空即可。

返回值类型:函数调用结果的类型;如果是存储过程则不适用。

参数:由于这里是无参数存储过程,无需填写。

3、调用DB存储过程-有参存储过程。

1)创建有参数存储过程sp_with_param,其中param_name 是入参,result是返回结果。

use test;
drop procedure if exists sp_with_param;
delimiter //
create procedure sp_with_param(IN param_name VARCHAR(255) ,OUT result VARCHAR(255))
begin-- 打印信息select concat('sp_with_param  我执行了',param_name) INTO result  from dual;end //
delimiter ;

2)步骤【生成纪录】产生入参param_name,步骤【调用DB存储过程】调用sp,步骤【写日志】打印执行结果,如下图所示:

3)步骤【DB存储过程】设置 

 参数:

名称:参数名称,包含入参数和返回参数。

方向:IN、OUT、INOUT三个选项,根据情况自行选择。

类型:参数类型,和存储过程参数需要相对应。

注意:这里的参数顺序要和存储过程里面的参数顺序保持一致。

4、使用步骤【执行SQL脚本】调用存储过程,这里主要用到mysql中的语法如:call 存储过程名称,本次不做具体介绍,如下图所示:

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/29326.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

2024 年 5 月 8 日 周三 晴 热(471 字)

正文翻开日历,才注意到已经立夏了呢。今天总结起来,就一个字:累。下午跑了三个乡镇,去找镇长对接帐户的事情。虽说我是被迫拉上的,不用自己操心,但是坐车真的很累。时间长,4 个多小时,弯道多,气热。最后跑完回到行里的时候感觉人快死掉了。并且因为这件事,中午觉也没…

TLP元素与PCIE数据流

不同于并行总线,PCIe 这样的串行总线不使用总线上的控制信号来表示某时刻链路上正在发生什么。相反地,PCIe 链路上的发送方发出的比特流必须要有一个预期的大小,还要有一个可供接收方辨认的格式,这样接收方才能理解比特流的内容。此外,PCIe 在传输数据包时并不使用任何直接…

如何把多个文件(夹)平均复制到多个文件夹中

首先,需要用到的这个工具:度娘网盘 提取码:qwu2 蓝奏云 提取码:2r1z假定的情况是,共有20个兔兔的图片,想要平均的复制4个文件夹里,那么每个文件夹里面就有5个图片(如果是5个,那每个自然是4个,具体除数是多少,根据实际情况即可)打开工具,切换到 文件批量复制 版块找…

一键自动化博客发布工具,用过的人都说好(cnblogs篇)

使用一键自动化博客发布工具blog-auto-publishing-tools把博客发布到cnblogs上。cnblogs和其他的博客平台相比会比较复杂,需要设置的项目也比较多一些,弄懂了cnblogs的实现方式,那么你应该对selenium的整个框架使用已经烂熟于心了。 除了正常的标题,内容,摘要之外,cnblog…

如何把多个文件(夹)随机复制到多个文件夹中

首先,需要用到的这个工具:度娘网盘 提取码:qwu2 蓝奏云 提取码:2r1z先看文件的情况一共20个兔兔的图片,4个文件夹,把全部的图片随机的复制这些地方去打开工具,切换到 文件批量复制 版块找到右下角的 设置,点击打开勾选“随机复制”,把文件进行随机的复制选中全部的兔兔…

软件测试过程中的痛点思考

前几天无意中看到了TesterHome发起的《2023年度软件质量保障行业调查报告》,文中提到了几点调查结果和分析结论让我很感兴趣。针对这份调查报告,我想就下述三点结论谈谈我的一些理解和思考。一、测试参与度分析 在这一调查报告结论中,提到了需求评审、测试计划和测试评审是整…

如何把多个文件(夹)向上移动1层(或多层)(在批量复制前或后进行)

首先,需要用到的这个工具:度娘网盘 提取码:qwu2 蓝奏云 提取码:2r1z假定情况是,我要把下图里的4个文件夹内部的全部文件,合并到04的当前位置来(4个文件夹里面各有5个兔兔的图片)打开工具,切换到 文件批量复制 版块找到右下角的 更多 ,点击,来设置上移的情况勾选“来…

Qt元对象系统自带类型与注册类型

通过isRegistered()方法判断 在Qt跨线程传参时,使用信号槽connect或者调用QMetaInvokeMethon时,传递的参数的类型通常要注意是不是已在Qt的元对象系统中注册过了,Qt提供了方法来判断类型是否被注册: bool QMetaType::isRegistered(int type)其中参数是枚举类型,参数例子: …