sql >> Base de Datos >  >> RDS >> PostgreSQL

Cómo devolver el resultado de la tabla temporal en la función postgresql

Dentro de su main_function():

RETURN QUERY SELECT * FROM temp_t;

...si la tabla temp_t consta de, p. columna1 (tipo entero), columna2 (booleano) y columna3 (varchar(100)), también debe definir el tipo devuelto como:

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

Otra forma es definir un nuevo tipo de datos:

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

Ese tipo puede ser devuelto por sus funciones de la misma manera que los tipos de datos normales:

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

...y devolver el resultado de la función de la misma manera que se mencionó anteriormente.