- 论坛徽章:
- 0
|
存储过程1
CREATE PROCEDURE ALAN_CHAN.PROC1 ()
RESULT SETS 1
LANGUAGE SQL
P1: BEGIN
DECLARE cursor1 CURSOR WITH RETURN TO CALLER FOR
SELECT IMITM
FROM CRPDTA.F4101
WHERE RTRIM(CRPDTA.F4101.IMLITM) = '13591.23383';
open cursor1;
END P1
存储过程2
CREATE PROCEDURE ALAN_CHAN.PROC2 (OUT OUT_STR VARCHAR(100))
LANGUAGE SQL
P1: BEGIN
declare loc1 result_set_locator varying;
--调用该SP返回结果集
call ALAN_CHAN.PROC1;
--将返回结果集和结果集数组关联
associate result set locator(loc1) with procedure ALAN_CHAN.PROC1;
--将结果集数组分配给cursor
allocate cursor1 cursor for result set loc1;
--直接从结果集中赋值
fetch cursor1 INTO OUT_STR;
--关闭游标
close cursor1;
END P1
运行ALAN_CHAN.PROC2后产生错误,返回的SQLCODE为SQL0104,我查找IBM的SQL Message说是语法有错误,请大家帮忙看看
另外我的运行环境是 IBM AS400/DB2 V5R3,IBM Developer Workbench编写存储过程 |
|