PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment renvoyer le résultat de la table temporaire dans la fonction postgresql

Dans votre main_function() :

RETURN QUERY SELECT * FROM temp_t;

...si la table temp_t se compose par ex. colonne1 (entier de type), colonne2 (booléen) et colonne3 (varchar(100)), vous devez également définir le type renvoyé comme :

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

Une autre méthode consiste à définir un nouveau type de données :

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

Ce type peut être renvoyé par vos fonctions de la même manière que les types de données normaux :

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

...et renvoie le résultat de la fonction de la même manière que celle mentionnée ci-dessus.