sql >> Database >  >> RDS >> PostgreSQL

Hoe verwijs ik naar benoemde parameters in Postgres sql-functies?

HERZIEN:Zoals aangegeven in opmerkingen, was dit antwoord correct toen het begin 2012 werd geschreven, maar benoemde parameters worden ondersteund sinds v9.2, uitgebracht eind 2012.

Parameternamen zijn slechts een versiering wanneer uw functie in taal SQL . U kunt de parameters op naam gebruiken in opgeslagen procedures gedefinieerd als language plpgsql .

Daarom moet u verwijzen naar de functie args met $X, waarbij X de ordinale positie is van de lijst met argumenten van de functie (beginnend met 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;


  1. Hoe te groeperen op jaar in SQL

  2. Voorvallen tellen op basis van verschillende voorwaarden voor twee tabellen

  3. Wat is de beste manier om database-inserts bulksgewijs vanuit c# in te voeren?

  4. Hoe beheert u SQL-query's?