存储过程和函数

DROP PROCEDURE PROC_Z4;

CREATE PROCEDURE proc_z4()
BEGIN
    DECLARE card CHAR(20);    
    DECLARE count INT;
    SELECT count(*) INTO count FROM Z4;    
    BEGIN
        DECLARE cur CURSOR FOR SELECT card FROM Z4;
        OPEN cur;
        WHILE count>0 do    
            FETCH cur INTO card;
            IF card='100' then
                INSERT INTO z3(card) VALUES(card);
            END IF;
            SET count=count-1;    
        END WHILE;
        CLOSE cur;
    END;    
END;

DROP FUNCTION FUN_WJF;
CREATE FUNCTION fun_wjf(c CHAR(20))
RETURNs CHAR(20)
LANGUAGE SQL
BEGIN ATOMIC
    RETURN rtrim(c)||'a';
END
CREATE FUNCTION fun_wjf(c CHAR(20))
RETURNs CHAR(20)
LANGUAGE SQL
BEGIN ATOMIC
    RETURN rtrim(c)||'a';
END
SELECT fun_wjf(CARD), TRCD, AMOUNT FROM z3;

 db2存储过程查询结果集

DROP PROCEDURE PROC_QUERY;
CREATE PROCEDURE proc_query()
RESULT SETS 2
BEGIN
    DECLARE cur1 CURSOR WITH RETURN FOR SELECT * FROM z4;
    DECLARE cur2 CURSOR WITH RETURN FOR SELECT * FROM z3;
    OPEN cur1;
    OPEN cur2;
END;

注:

RESULT SETS 2表示返回两个结果集
结果集由游标实现,因此游标只有打开,没有关闭

有追求,才有动力!

向每一个软件工程师致敬!

by wujf

mail:921252375@qq.com

原文地址:https://www.cnblogs.com/wujf/p/5113962.html