从 Postgres 函数返回虚拟表
在 Postgres 中,创建虚拟表(类似于 Oracle 的虚拟表)可以通过以下方式实现一个函数。此函数允许您返回具有已定义结构和内容的自定义表格。
正确语法
以下是您提供的函数的正确语法:
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;
钥匙Points
调用函数
您现在可以调用函数来获取虚拟表:
SELECT * FROM "public"."storeopeninghours_tostring"(<open_id>);
替代语法
在 Postgres 8.4 或更高版本中,您还可以使用以下 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;
简单 SQL 解决方案
对于像这样的简单情况,您也可以使用简单的 SQL 语句:
VALUES (1, 2, 3), (3, 4, 5), (3, 4, 5)
以上是如何从 PostgreSQL 函数创建并返回虚拟表?的详细内容。更多信息请关注PHP中文网其他相关文章!