संशोधित:जैसा कि टिप्पणियों में बताया गया है, यह उत्तर 2012 की शुरुआत में लिखे जाने पर सटीक था, लेकिन 2012 के अंत में जारी v9.2 के बाद से नामित मापदंडों का समर्थन किया गया है।
जब आपका कार्य भाषा एसक्यूएल
. आप language plpgsql
. के रूप में परिभाषित संग्रहीत कार्यविधियों में नाम से पैरामीटर का उपयोग कर सकते हैं ।
नतीजतन, आपको $X का उपयोग करके फ़ंक्शन args का संदर्भ लेना चाहिए जहां X फ़ंक्शन की तर्क सूची की क्रमिक स्थिति है (1 से शुरू)।
CREATE OR REPLACE FUNCTION fn_name (
n VARCHAR(32) = NULL,
OUT name varchar(32),
OUT description varchar(64) )
RETURNS setof record
AS
$$
SELECT u.name
, u.description
FROM table_a u
WHERE u.name = COALESCE($1, u.name);
$$
LANGUAGE sql;