2012-05-14 58 views
11

我试图从2个OUT参数的plpgsql函数中获取值,但是我遇到了一些问题。plpgsql:使用2个OUT参数调用函数

这些是功能:

CREATE OR REPLACE FUNCTION get_test(OUT x text, OUT y text) 
AS $$ 
BEGIN 
    x := 1; 
    y := 2; 
END; 
$$ LANGUAGE plpgsql; 
---------------------------------------------------------------- 

CREATE OR REPLACE FUNCTION get_test_read() 
RETURNS VOID AS $$ 
DECLARE 
    xx text; 
    yy text; 
BEGIN 

    SELECT get_test() INTO xx, yy; 

    RAISE INFO 'x: <%>', xx; 
    RAISE INFO 'y: <%>', yy; 

END; 
$$ LANGUAGE plpgsql; 

的命令的输出:

选择get_test_read();

INFO:X:<(1,2)

INFO:Y:<>

get_test_read


所以这两个值去的第一个参数。 我找不到如何调用这样的函数的例子。

回答

23

由于您有2 OUT params,您的功能将返回record

为了得到你应该使用功能为您的数据源中的所有值,并把它放入FROM条款是这样的:

SELECT * FROM get_test() INTO xx, yy; 
+0

好了,很容易的,谢谢:) – marco

+0

对不起,我忘了接受答案 – marco

相关问题