REVIDERET:Som påpeget i kommentarerne, var dette svar nøjagtigt, da det blev skrevet i begyndelsen af 2012, men navngivne parametre er blevet understøttet siden v9.2, udgivet i slutningen af 2012.
Parameternavne er kun dekoration, når din funktion er i sprog SQL
. Du kan bruge parametrene efter navn i lagrede procedurer defineret som language plpgsql
.
Derfor skal du henvise til funktionen args ved hjælp af $X, hvor X er ordenspositionen af funktionens argumentliste (startende med 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;