CREATE FUNCTION test()
RETURNS my_table AS
$BODY$
DECLARE
q4 my_table;
BEGIN
-- add brackets to get a value
-- select row as one value, as q4 is of the type my_table
-- and limit result to one row
q4 := (SELECT my_table FROM my_table ORDER BY 1 LIMIT 1);
RETURN q4;
END;$BODY$
-- change language to plpgsql
LANGUAGE plpgsql;
- आप
sql
में वेरिएबल का उपयोग नहीं कर सकते हैं फ़ंक्शन,plpgsql
. का उपयोग करें । - आप एक वैरिएबल को सिंगल वैल्यू असाइन कर सकते हैं, जबकि
select query
पंक्तियों का सेट लौटाता है। - आपको एक मान के रूप में एक पंक्ति का चयन करना होगा, क्योंकि चर मिश्रित प्रकार का है।
लूप का उपयोग करने का उदाहरण:
DROP FUNCTION test();
CREATE FUNCTION test()
-- change to SETOF to return set of rows, not a single row
RETURNS SETOF my_table AS
$BODY$
DECLARE
q4 my_table;
BEGIN
FOR q4 in
SELECT * FROM my_table
LOOP
RETURN NEXT q4;
END LOOP;
END;$BODY$
LANGUAGE plpgsql;
SELECT * FROM test();
फ़ंक्शन से वापसी के बारे में दस्तावेज़ पढ़ें