UPRAVENÉ:Jak bylo uvedeno v komentářích, tato odpověď byla přesná, když byla napsána na začátku roku 2012, ale pojmenované parametry jsou podporovány od verze 9.2, vydané koncem roku 2012.
Názvy parametrů jsou pouze ozdobou, když je vaše funkce v jazyk SQL
. Parametry můžete použít podle názvu v uložených procedurách definovaných jako language plpgsql
.
V důsledku toho musíte odkazovat na argumenty funkce pomocí $X, kde X je pořadová pozice seznamu argumentů funkce (začínající 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;