如何在另一个存储过程中调用存储过程,并将值设置为DB2中的变量

时间:2017-01-04 05:56:11

标签: sql stored-procedures db2

我需要将存储过程调用到另一个存储过程并返回存储在db2变量中的值。

由于

1 个答案:

答案 0 :(得分:0)

一个例子可能是这个:

 DECLARE STMT STATEMENT;
 PREPARE STMT FROM 'CALL MODIFY_DESCENDANTS (?, ?)';
 EXECUTE STMT USING LOG_ID, LEVEL;

取自log4db2 - https://github.com/angoca/log4db2/blob/master/src/main/sql-pl/03-UtilityBody.sql#L729

如果存储过程返回结果集,并且您想从中获取值,则需要调用存储过程并使用associate和allocate语句。例如,您可以访问https://www.toadworld.com/platforms/ibmdb2/w/wiki/7460.call-allocate-and-associate

CALL EMPR;
ASSOCIATE RESULT SET LOCATOR (LOC1) WITH PROCEDURE EMPR;
ALLOCATE C1 CURSOR FOR RESULT SET LOC1;