改訂:コメントで指摘されているように、この回答は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;