使用Kettle调用数据库中的存储过程

使用kettle调用存储过程,传入参数传出参数。

存储过程的内容如下,主要是传入一个表名字和一个数字类型的返回值。

那么能得到表的行数。

CreateOr Replace Procedure p_Emp_Cnt(t In Varchar2, Num Out Number) Is
  v_Sql Varchar2(600);
  Lv_Cnt Number;
Begin
  Select Count(*)
    Into Lv_Cnt
    From User_Tables
   Where Upper(Table_Name) = Upper(t);
 
  If Lv_Cnt > 0 Then
    v_Sql := ‘Select Count(*) From ‘ || t;
    Execute Immediate v_Sql
      Into Num;
  End If;
End;

调用过程如下:

Declare
  Num Number;
Begin
  p_emp_cnt(‘t1‘,Num);
  dbms_output.put_line(Num);
End;
/

实验过程中包括两个步骤:

1、自定义常量数据:

这个步骤定义了两个列,一个列是表名,另外一个列是空值(用来接收返回值)

如下图所示:

2、调用DB存储过程

这个步骤需要连接到目标数据库,并且需要通过前面的步骤得到参数名称。

调用过程之后得到返回值。

3、预览数据

如下图所示,得到每个表中到底有多少行。

调用存储过程的步骤总结,你只需要写传入的表名就可以了。比如说我的生成常量记录中只有一列。

那么只需要把这列内容传入到过程中即可。

预览数据得到结果:

时间: 2024-10-13 13:15:09

使用Kettle调用数据库中的存储过程的相关文章

java中调用数据库中的存储过程和函数

public static void main(String[] args) {         Connection conn =getConnection(url,user, pwd);         System.out.println("数据连接成功");         CallableStatement cs=null;         try         {    //调用数据库中的存储过程              cs = conn.prepareCall(&q

Java基础系列12:使用CallableStatement接口调用数据库中的存储过程

前言:以下内容均以MySQL中的存储过程举例说明 一 存储过程简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它. 一个存储过程是一个可编程的函数,它在数据库中创建并保存.它可以有SQL语句和一些特殊的控制结构组成.当希望在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过程是

在SQL Server数据库中执行存储过程很快,在c#中调用很慢的问题

记录工作中遇到的问题,分享出来: 原博客地址:https://blog.csdn.net/weixin_40782680/article/details/85038281 今天遇到一个比较郁闷的问题,如下图: 点击库存或者点击销售,查询数据很慢,有的将近几十秒,查询数据用的是存储过程,在数据库中执行存储过程,查询数据是很快的,速度非常理想,1秒不到,但是c#程序中调用就要很久. 百度了很多,后来这上面的那篇文章中找到了原因所在: 原因分析:由于存储过程是预编译的, 在第一次执行的时候, 会生成执

mysql导入数据库中的存储过程和函数出现错误的解决办法

mysql导入数据库中的存储过程和函数出现错误的解决办法 调用一个远程拷贝的本地Mysql的储存过程 报错:[Err] 1449 - The user specified as a definer ('repl'@'192.168.1.%') does not exist  解决想法: 凭借以前经常见到的[email protected]报错,给root赋值所有权限: grant all privileges on *.* to [email protected]"%" identif

数据库中对存储过程的理解

1.存储过程的概念 存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集.经编译后存储在数据库中. 存储过程是数据库中的一个重要对象,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它. 存储过程是由 流控制 和 SQL语句书写的过程,这个过程经编译和优化后存储在数据库服务器中. 存储过程 可由应用程序通过一个调用来执行,而且允许用户声明变量. 同时,存储过程可以接收和输出参数.返回执行存储过程的状态值,也可以嵌套调用. 2.存储过程的优点 ① 存

显示数据库中的存储过程__转

It's no easy trick to see stored procedures in a database programmatically with a scripting language like ASP. If you're using MS Access, you're out of luck. Access provides no way to see the actual meat of a stored procedure although you can get the

C#调用SQL中的存储过程中有output参数,存储过程执行过程中返回信息

C#调用SQL中的存储过程中有output参数,类型是字符型的时候一定要指定参数的长度.不然获取到的结果总是只有第一字符.本人就是由于这个原因,折腾了很久.在此记录一下,供大家以后参考! 例如: CREATE PROCEDURE sp_AccountRole_Create @CategoryID int, @RoleName nvarchar(10), @Description nvarchar(50), @RoleID int output AS DECLARE @Count int -- 查

浅谈数据库中的存储过程

一.存储过程与函数的区别: 1.一般来说,存储过程实现的功能要复杂一点,而函数的实现的功能针对性比较强. 2.对于存储过程来说可以返回参数(output),而函数只能返回值或者表对象. 3.存储过程一般是作为一个独立的部分来执行,而函数可以作为查询语句的一个部分来调用,由于函数可以返回一个表对象,因此它可以在查询语句中位于FROM关键字的后面. 二.存储过程的优点: 1.执行速度更快 – 在数据库中保存的存储过程语句都是编译过的 2.允许模块化程序设计 – 类似方法的复用 3.提高系统安全性 –

数据库——浅谈数据库中的存储过程(转)

一.存储过程与函数的区别: 1.一般来说,存储过程实现的功能要复杂一点,而函数的实现的功能针对性比较强. 2.对于存储过程来说可以返回参数(output),而函数只能返回值或者表对象. 3.存储过程一般是作为一个独立的部分来执行,而函数可以作为查询语句的一个部分来调用,由于函数可以返回一个表对象,因此它可以在查询语句中位于FROM关键字的后面. 二.存储过程的优点: 1.执行速度更快 – 在数据库中保存的存储过程语句都是编译过的 2.允许模块化程序设计 – 类似方法的复用 3.提高系统安全性 –