2012-05-14 59 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

相關問題