Renvoi d'une table virtuelle à partir d'une fonction Postgres
Dans Postgres, la création d'une table virtuelle (similaire aux tables virtuelles d'Oracle) peut être réalisée en utilisant une fonction. Cette fonction vous permet de renvoyer un tableau personnalisé avec une structure et un contenu définis.
Syntaxe correcte
Voici la syntaxe corrigée pour la fonction que vous avez fournie :
CREATE OR REPLACE FUNCTION "public"."storeopeninghours_tostring" (open_id numeric) RETURNS TABLE (a int, b int, c int) AS DECLARE returnrecords RECORD; BEGIN INSERT INTO returnrecords(a, b, c) VALUES (1, 2, 3); INSERT INTO returnrecords(a, b, c) VALUES (3, 4, 5); INSERT INTO returnrecords(a, b, c) VALUES (3, 4, 5); RETURN TABLE returnrecords; END;
Clé Points
Appel de la fonction
Vous pouvez maintenant appeler la fonction pour obtenir la table virtuelle :
SELECT * FROM "public"."storeopeninghours_tostring"(<open_id>);
Syntaxe alternative
Dans Postgres 8.4 ou version ultérieure, vous pouvez également utiliser ce qui suit Syntaxe PL/pgSQL :
CREATE OR REPLACE FUNCTION f_foo() RETURNS TABLE (a int, b int, c int) AS $$ BEGIN RETURN QUERY VALUES (1, 2, 3), (3, 4, 5), (3, 4, 5); END; $$ LANGUAGE plpgsql;
Solution SQL simple
Pour un cas simple comme celui-ci, vous pouvez également utiliser une simple instruction SQL :
VALUES (1, 2, 3), (3, 4, 5), (3, 4, 5)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!