使用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