sql >> Databasteknik >  >> RDS >> PostgreSQL

Återvänder från en funktion med parameter OUT

Det skulle fungera så här:

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$;

Normalt skulle du lägga till en RETURN uttalande, men med OUT parametrar, detta är valfritt.
Se manualen för mer information:

  • Återvänder från en funktion
  • Köra en fråga med ett resultat på en rad

Det enkla fallet kan täckas med en vanlig SQL-funktion.
Och du kan utelämna målkolumnen som ska få sin DEFAULT värde.
Och du kan lika gärna använda en RETURNS klausul i detta fall:

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$;



  1. SQL Server Error 110:Det finns färre kolumner i INSERT-satsen än de värden som anges i VALUES-satsen.

  2. WHERE-tillstånd i MySQL med 16 olika frågeexempel

  3. Skillnaden mellan N'String' vs U'String' bokstaver i Oracle

  4. Oracle dynamisk DESC och ASC i ordning efter