Maison > base de données > tutoriel mysql > Comment créer et renvoyer une table virtuelle à partir d'une fonction PostgreSQL ?

Comment créer et renvoyer une table virtuelle à partir d'une fonction PostgreSQL ?

Linda Hamilton
Libérer: 2024-12-27 08:33:10
original
339 Les gens l'ont consulté

How to Create and Return a Virtual Table from a PostgreSQL Function?

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;
Copier après la connexion

Clé Points

  • RETURNS TABLE : Spécifie le type de données de la table virtuelle. Dans ce cas, il s'agit d'une table avec trois colonnes entières nommées a, b et c.
  • INSERT : utilisez les instructions INSERT pour remplir la table virtuelle avec des données.
  • RETURN TABLE : utilisez RETURN TABLE pour renvoyer la table virtuelle du function.

Appel de la fonction

Vous pouvez maintenant appeler la fonction pour obtenir la table virtuelle :

SELECT * FROM "public"."storeopeninghours_tostring"(<open_id>);
Copier après la connexion

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;
Copier après la connexion

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)
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal