从 DB2 存储过程中检索返回值

mol*_*ses 3 sql db2 stored-procedures return-value

我有一个在 DB2 存储过程中重复的代码块。我想把它分离成一个新的过程,我可以用参数调用它并让它返回一个值。

如何创建返回值的过程以及如何从原始过程中调用此过程?

mol*_*ses 5

是的,只需要一个输出参数。我在手册或谷歌中找不到正确的调用语法。

你创建这样的过程:

CREATE PROCEDURE myschema.add(IN a INT, IN b INT, OUT c INT)
BEGIN
    SET c = a + b;
END
Run Code Online (Sandbox Code Playgroud)

然后这样称呼它(这是我想不通的):

DECLARE result INT DEFAULT 0;

CALL myschema.add(10, 20, result);

-- result == 30
Run Code Online (Sandbox Code Playgroud)

然后输出以提供的result变量结束。您还可以有多个OUT参数以及INOUT参数。

当然现在看起来很明显。:)