sql >> Database >  >> RDS >> PostgreSQL

Postgresql opgeslagen procedure retourneert tabel alle kolommen

Als u een resultaat wilt retourneren, moet u return query . gebruiken in PL/pgSQL zoals gedocumenteerd in de handleiding

CREATE OR REPLACE FUNCTION dwgcould.returnallcolumns(IN sessionId character varying)
  RETURNS SETOF public.mytable AS
$BODY$
BEGIN
  return query --<< this was missing
    SELECT * 
    FROM public.mytable 
    WHERE session_id = returnallcolumns.sessionId 
    ORDER BY pro_id DESC LIMIT 1;
END;
$BODY$
LANGUAGE plpgsql VOLATILE;

Maar je hebt hier geen PL/pgSQL voor nodig, een simpele SQL-functie is efficiënter:

CREATE OR REPLACE FUNCTION dwgcould.returnallcolumns(IN sessionId character varying)
  RETURNS SETOF public.mytable AS
$BODY$
    SELECT * 
    FROM public.mytable 
    WHERE session_id = returnallcolumns.sessionId 
    ORDER BY pro_id DESC LIMIT 1;
$BODY$
LANGUAGE sql;



  1. Postgres-container crasht met 'databasebestanden zijn incompatibel met server' nadat de afbeelding van de container is bijgewerkt naar de nieuwste

  2. SQL - Geef me slechts 3 hits voor elk type

  3. Probleem met uploadgrootte in PHP en MySql

  4. Cursorlusverwerking voortzetten na uitzondering in Oracle