हाँ आप कर सकते हैं। कई तरीके हैं।
1) RETURN (SELECT ...)
CREATE OR REPLACE FUNCTION get(_param_id integer)
RETURNS integer AS
$func$
BEGIN
RETURN (SELECT col1 FROM TABLE WHERE id = _param_id);
END
$func$ LANGUAGE plpgsql;
2) OUT
का उपयोग करें या INOUT
पैरामीटर
CREATE OR REPLACE FUNCTION get(_param_id integer, OUT _col1 integer)
-- RETURNS integer -- "RETURNS integer" is optional noise in this case
AS
$func$
BEGIN
SELECT INTO _col1 col1 FROM TABLE WHERE id = _param_id;
-- also valid, but discouraged:
-- _col1 := col1 FROM TABLE WHERE id = _param_id;
END
$func$ LANGUAGE plpgsql;
यहाँ मैनुअल में और अधिक।
3) (एबी) IN
का उपयोग करें पैरामीटर
चूंकि 9.0 पोस्ट किया गया है आप इनपुट पैरामीटर . का भी उपयोग कर सकते हैं चर के रूप में। 9.0 के लिए रिलीज़ नोट:
<ब्लॉककोट>एक इनपुट पैरामीटर अब एक स्थानीय वैरिएबल की तरह काम करता है जिसे पास-इन वैल्यू के लिए इनिशियलाइज़ किया गया है।
CREATE OR REPLACE FUNCTION get(_param_id integer)
RETURNS integer AS
$func$
BEGIN
SELECT INTO _param1 col1 FROM TABLE WHERE id = _param1;
RETURN _param1;
-- Also possible, but discouraged:
-- $1 := col1 FROM TABLE WHERE id = $1;
-- RETURN $1;
END
$func$ LANGUAGE plpgsql;
पिछले वाले के साथ आप उपयोग करते हैं एक चर परोक्ष रूप से, लेकिन आपको DECLARE
. की आवश्यकता नहीं है यह स्पष्ट रूप से (अनुरोध के अनुसार)।
4) एक DEFAULT
का प्रयोग करें INOUT
. के साथ मान पैरामीटर
यह थोड़ा खास मामला है। फंक्शन बॉडी खाली हो सकती है।
CREATE OR REPLACE FUNCTION get(_param_id integer, INOUT _col1 integer = 123)
RETURNS integer AS
$func$
BEGIN
-- You can assign some (other) value to _col1:
-- SELECT INTO _col1 col1 FROM TABLE WHERE id = _param_id;
-- If you don't, the DEFAULT 123 will be returned.
END
$func$ LANGUAGE plpgsql;
INOUT _col1 integer = 123
INOUT _col1 integer DEFAULT 123
. के लिए संक्षिप्त संकेतन है . अधिक:
- भूल गए असाइनमेंट ऑपरेटर "=" और सामान्य ":="
5) इसके बजाय एक सादे SQL फ़ंक्शन का उपयोग करें
CREATE OR REPLACE FUNCTION get(_param_id integer)
RETURNS integer AS
$func$
SELECT col1 FROM TABLE WHERE id = _param_id;
-- use positional reference $1 instead of param name in Postgres 9.1 or older
$func$ LANGUAGE sql;