从函数中操作 OUT 参数
Manipulating OUT parameters from function
我有一个函数有两个 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
在 some_function_2()
中,您应该使用 returns 两个值而不是记录的查询:
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;
我有一个函数有两个 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
在 some_function_2()
中,您应该使用 returns 两个值而不是记录的查询:
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;