sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Cómo hago referencia a los parámetros con nombre en las funciones de Postgres sql?

REVISADO:como se señaló en los comentarios, esta respuesta era correcta cuando se escribió a principios de 2012, pero los parámetros con nombre se admiten desde la versión 9.2, lanzada a fines de 2012.

Los nombres de los parámetros son simplemente decoración cuando su función está en lenguaje SQL . Puede usar los parámetros por nombre en procedimientos almacenados definidos como language plpgsql .

En consecuencia, debe referirse a los argumentos de la función usando $X, donde X es la posición ordinal de la lista de argumentos de la función (comenzando con 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;