CREATE OR REPLACE FUNCTION get_names(_tname varchar)
RETURNS TABLE (col_a integer, col_b text) AS
$func$
BEGIN
RETURN QUERY
SELECT t.col_a, t.col_b -- must match RETURNS TABLE
FROM mytable t
WHERE t.name = _tname;
END
$func$ LANGUAGE plpgsql;
इस तरह कॉल करें:
SELECT * FROM get_names('name')
प्रमुख बिंदु:
-
RETURNS TABLE
का उपयोग करें , इसलिए आपको प्रत्येक कॉल के साथ कॉलम नामों की सूची प्रदान करने की आवश्यकता नहीं है। -
RETURN QUERY
का उपयोग करें , बहुत आसान। -
समान नाम वाले
OUT
. के साथ नामकरण के विरोध से बचने के लिए तालिका-योग्य स्तंभ नाम पैरामीटर (RETURNS TABLE
के साथ घोषित कॉलम सहित) )। -
ALIAS
. के बजाय नामित चर का प्रयोग करें . सरल, वही करना, और यह पसंदीदा तरीका है। -
इस तरह का एक साधारण फंक्शन
LANGUAGE sql
. में भी लिखा जा सकता है :
CREATE OR REPLACE FUNCTION get_names(_tname varchar)
RETURNS TABLE (col_a integer, col_b text) AS
$func$
SELECT t.col_a, t.col_b --, more columns - must match RETURNS above
FROM mytable t
WHERE t.name = $1;
$func$ LANGUAGE sql;