我有一个在 DB2 存储过程中重复的代码块。我想把它分成一个新的过程,我可以用参数调用它并让它返回一个值。
如何创建返回值的过程以及如何从原始过程中调用此过程?
我有一个在 DB2 存储过程中重复的代码块。我想把它分成一个新的过程,我可以用参数调用它并让它返回一个值。
如何创建返回值的过程以及如何从原始过程中调用此过程?
是的,只需要一个输出参数。不过,我在手册或谷歌中找不到正确的调用语法。
您可以像这样创建过程:
CREATE PROCEDURE myschema.add(IN a INT, IN b INT, OUT c INT)
BEGIN
SET c = a + b;
END
然后这样称呼它(这是我想不通的):
DECLARE result INT DEFAULT 0;
CALL myschema.add(10, 20, result);
-- result == 30
然后输出最终出现在提供的result
变量中。您还可以有多个OUT
参数以及INOUT
参数。
当然现在看起来很明显。:)
您从原始过程中调用的过程中的输出参数怎么样?调用 proc 是通过 CALL 命令完成的。它在手册中;)