Postgresql: Return Temp Table 来自存储过程

Postgresql: Return Temp Table From a Stored Procedure

我想 return 从存储过程中将查询结果存储在临时 table 中。我不确定最后的声明应该是什么。任何帮助都适用:

CREATE OR REPLACE FUNCTION public.get_generic_info(
    IN in_app_id character varying,
    IN key_id uuid)
RETURNS TABLE(info text, last_update timestamp with time zone) AS
$BODY$  
BEGIN
    CREATE TEMP TABLE result AS
        SELECT  generic_info.info::text, generic_info.last_update FROM 
                generic_info 
        WHERE generic_info.app_id = in_app_id AND generic_info.id = key_id;

    -- some data manipulations based on 'result' rows       
    RETURN ???????;
END;

你最后的陈述应该是这样的

RETURN QUERY 
     SELECT  result.info::text, result.last_update FROM 
      result;

如果您没有将 TEMP table 用于其他用途,则根本不需要创建临时文件 table。您可以直接执行

RETURN QUERY
SELECT  generic_info.info::text, generic_info.last_update FROM 
                generic_info 
        WHERE generic_info.app_id = in_app_id AND generic_info.id = key_id;