sql >> Database teknologi >  >> RDS >> PostgreSQL

Sender flere værdier i en enkelt parameter

Din funktion ville ikke blive oprettet. RETURN efter end er syntaktisk nonsens.

Uanset hvad, en funktion med en VARIADIC parameter gør præcis hvad du beder om:

CREATE OR REPLACE FUNCTION test_function(VARIADIC varchar[])
 RETURNS SETOF integer AS
$func$
SELECT column2
FROM   test_table
WHERE  column1 = ANY($1);
$func$  LANGUAGE sql;

Ring (som ønsket):

SELECT * FROM test_function('data1', 'data2', 'data3');

Ved at bruge en simpel SQL-funktion er plpgsql ikke påkrævet for det simple eksempel. Men VARIADIC virker også til plpgsql-funktioner.

Brug af RETURNS SETOF integer da dette naturligvis kan returnere flere rækker.

Detaljer:

  • Send flere værdier i en enkelt parameter
  • Returner rækker, der matcher elementer af input-array i plpgsql-funktionen
  • VARIADIC-parameter skal være den sidste inputparameter
  • Returner rækker, der matcher elementer af input-array i plpgsql-funktionen

SQL Fiddle demo med yderligere parametre.




  1. Hvordan ændres negativ værdi til positiv i Oracle?

  2. Sådan sletter du data fra Elastisearch

  3. Dybdegående udforskning af Row Level Security

  4. Kan JavaScript forbindes med MySQL?