2012-05-14 15 views
11

मैं 2 आउट पैरामीटर के साथ plpgsql फ़ंक्शन से मूल्यों को लाने की कोशिश कर रहा हूं लेकिन मुझे कुछ समस्या है।plpgsql: 2 आउट पैरामीटर के साथ फ़ंक्शन को कॉल करना

ये कार्य हैं:

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();

जानकारी: एक्स: < (1,2)

जानकारी: y: <>

get_test_read


तो दोनों मूल्यों पहले पैरामीटर में जाते हैं। मुझे इस तरह के फ़ंक्शन को कॉल करने के तरीके पर कुछ उदाहरण नहीं मिल रहा है।

उत्तर

23

जैसा कि आपके पास 2 OUT पैरा हैं, आपका फ़ंक्शन record लौटाएगा।

आदेश सभी मूल्यों आप अपने डेटा के स्रोत के रूप में समारोह का उपयोग करना चाहिए और उसे FROM खंड इस तरह में डाल करने के लिए:

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

ठीक है, बहुत आसान है, धन्यवाद :) – marco

+0

क्षमा करें, मैं भूल गया जवाब स्वीकार करें – marco

संबंधित मुद्दे