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表示返回两个结果集
结果集由游标实现,因此游标只有打开,没有关闭