从函数中操作OUT参数

时间:2015-07-09 12:23:41

标签: postgresql plpgsql stored-functions out-parameters

我有一个有两个OUT参数的函数。我想从另一个函数调用该函数,并将这些OUT参数放到两个变量中。虽然我在这里看到了一些类似的问题,但我将这两个参数保存为两个变量时遇到了一些麻烦。

以下是代码:

CREATE OR REPLACE FUNCTION some_function_2(OUT out_code2 integer, OUT out_message2 text)
  RETURNS RECORD AS
$BODY$
DECLARE
   --s_code integer;
   --s_message text;
BEGIN
    --Calling first function, return two out parameters and end function
    SELECT some_function_1() INTO out_code2, out_message2;

END
$BODY$
  LANGUAGE plpgsql VOLATILE

CREATE OR REPLACE FUNCTION some_function_1(OUT out_code1 integer, OUT out_message1 text)
  RETURNS RECORD AS
$BODY$
DECLARE
   --s_code integer;
   --s_message text;
BEGIN

   out_code1:= 1;
   out_message1:= 'TEST';

END
$BODY$
  LANGUAGE plpgsql VOLATILE

1 个答案:

答案 0 :(得分:0)

some_function_2()中,您应该使用一个返回两个值的查询,而不是记录:

CREATE OR REPLACE FUNCTION some_function_2(OUT out_code2 integer, OUT out_message2 text)
  RETURNS RECORD AS
$BODY$
DECLARE
BEGIN
    --Calling first function, return two out parameters and end function
    SELECT out_code1, out_message1 FROM some_function_1() INTO out_code2, out_message2;
END
$BODY$
  LANGUAGE plpgsql VOLATILE;