发布网友 发布时间:2022-04-08 22:46
共2个回答
懂视网 时间:2022-04-09 03:07
存储过程的内容如下,主要是传入一个表名字和一个数字类型的返回值。
那么能得到表的行数。
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
热心网友 时间:2022-04-09 00:15
无参数的存储过程吗,kettle是不显示的,直接手动输入存储过程名称就可以了