【发布时间】:2014-10-10 12:37:58
【问题描述】:
我正在尝试创建一个存储过程,它使用 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 (variable)= 有些东西似乎不像
SELECT tableOneCount = (SELECT COUNT(*) FROM tab1);
但现在的问题是,在创建过程时,我得到了 tab1 未知的错误,这很明显,因为它是一个变量,我不知道如何添加 2 个游标。
有什么想法吗?
提前致谢。
流浪汉
【问题讨论】:
-
SELECT不是以您尝试的方式分配变量值的方式,无论如何在 DB2 中都不是。此外,您不能使用变量作为对象名称——谷歌搜索“动态 SQL”。
标签: sql stored-procedures parameters db2 resultset