Как ссылаться на именованные параметры в SQL-функциях Postgres?

Новичок в Postgres.

Я пытаюсь преобразовать хранимую процедуру SQL Server в функцию Postgres. В настоящее время не могу понять, как превратить эту строку SQL в Postgres.

SQL Server:

input: @name = null

SELECT *
FROM table
WHERE name = ISNULL(@name, name)

Postgres:

input: n = null

SELECT *
FROM table
WHERE name = COALESCE(n, name)

Я получаю сообщение об ошибке «столбец n не существует». Как ссылаться на параметры в операторах select в функциях Postgres?

ОБНОВЛЕНИЕ:

Определение функции Postgres

CREATE OR REPLACE FUNCTION fn_name (n VARCHAR(32) = NULL, name OUT varchar(32), description OUT varchar(64))
RETURNS setof record
AS 
$$
    SELECT u.name
        , u.description
    FROM table_a u
    WHERE u.name = COALESCE(n, u.name);

$$
LANGUAGE sql;
12
задан dbenhur 19 March 2012 в 17:37
поделиться