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

Come restituire il risultato della tabella temporanea nella funzione postgresql

Dentro la tua funzione_principale():

RETURN QUERY SELECT * FROM temp_t;

...se la tabella temp_t è composta ad es. column1 (tipo intero), column2 (boolean) e column3 (varchar(100)), dovresti anche definire il tipo restituito come:

CREATE OR REPLACE FUNCTION main_function(column1 OUT integer, column2 OUT boolean, column3 OUT varchar(100)) RETURNS SETOF record AS
(...)

Un altro modo è definire un nuovo tipo di dati:

CREATE TYPE temp_t_type AS (
    column1 integer,
    column2 boolean,
    column3 varchar(100)
);

Quel tipo può essere restituito dalle tue funzioni allo stesso modo dei normali tipi di dati:

CREATE OR REPLACE FUNCTION main_function() RETURNS SETOF temp_t_type AS
(...)

...e restituisce il risultato dalla funzione nello stesso modo menzionato sopra.