使用参数在DB2中的存储过程中添加两个行计数

时间:2014-10-10 12:37:59

标签: sql stored-procedures parameters db2 resultset

我正在尝试创建一个存储过程,使用select来获取两个表中的行数,然后打印出结果。

CREATE PROCEDURE TEST(IN tab1 varchar(20), IN tab2 varchar(20), out msg INTEGER)
LANGUAGE SQL
READS SQL DATA
BEGIN


DECLARE r1 CURSOR WITH RETURN FOR
    SELECT COUNT(*) FROM tab1;

DECLARE r2 CURSOR WITH RETURN FOR
    SELECT COUNT(*) FROM tab2;

OPEN r1;

OPEN r2;

---- somehow add the 2 together -----

CALL DBMS_OUTPUT.PUT( 'Zeilen = ' );
CALL DBMS_OUTPUT.PUT_LINE( msg );

END @

我更新了添加游标的整个源代码,因为select(变量)=某些内容似乎不像

 SELECT tableOneCount = (SELECT COUNT(*) FROM tab1);

但现在的问题是创建过程我得到了tab1未知的错误,这很明显,因为它是一个变量,我不知道如何添加2个游标。

有什么想法吗?

提前致谢。

TheVagabond

1 个答案:

答案 0 :(得分:1)

正如@mustaccio所说,你应该使用变量

DECLARE QTY INTEGER;
SET QTY = (SELECT COUNT(*) FROM tab1);