從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;
鑰匙
現在可以呼叫函數來取得虛擬表:
SELECT * FROM "public"."storeopeninghours_tostring"(<open_id>);
替代語法
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;
替代語法替代語法
在Postgres 8.4 或更高版本中,您也可以使用以下PL/pgSQL 語法:
VALUES (1, 2, 3), (3, 4, 5), (3, 4, 5)
以上是如何從 PostgreSQL 函數建立並傳回虛擬表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!