PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Retour d'une fonction avec paramètre OUT

Cela fonctionnerait comme ceci :

CREATE OR REPLACE FUNCTION name_function(param_1 varchar
                                   , OUT param_2 bigint)
  LANGUAGE plpgsql AS
$func$
BEGIN
    INSERT INTO table (collumn_seq, param_1)  -- "param_1" also the column name?
    VALUES (DEFAULT, param_1)
    RETURNING collumn_seq
    INTO param2;
END
$func$;

Normalement, vous ajouteriez un RETURN instruction, mais avec OUT paramètres, ceci est facultatif.
Reportez-vous au manuel pour plus de détails :

  • Revenir d'une fonction
  • Exécuter une requête avec un résultat sur une seule ligne

Le cas simple peut être couvert par une fonction SQL simple.
Et vous pouvez omettre la colonne cible qui recevra son DEFAULT value.
Et vous pouvez tout aussi bien utiliser un RETURNS clause dans ce cas :

CREATE OR REPLACE FUNCTION name_function(param_1 varchar)
  RETURNS bigint
  LANGUAGE sql AS
$func$
INSERT INTO table (param_1)  -- "param_1" also the column name?
VALUES (param_1)
RETURNING collumn_seq;
$func$;