当前位置:Gxlcms > 数据库问题 > 使用Kettle调用数据库中的存储过程

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

时间:2021-07-01 10:21:17 帮助过:738人阅读

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

那么能得到表的行数。

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、预览数据

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


技术分享

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

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



技术分享


预览数据得到结果:


技术分享


本文出自 “名字长一点会好记” 博客,请务必保留此出处http://xiaoyiyi.blog.51cto.com/1351449/1766836

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

标签:etl   kettle   

人气教程排行