Postgresql函数:具有动态分配类型的返回表

问题描述 投票:0回答:1

我正在研究一种Postgresql函数,该函数使用动态查询执行并返回表。下面是我现在正在尝试的。

CREATE OR REPLACE FUNCTION public.function_name(tableName character varying, idValue uuid, limitValue bigint)
    RETURNS Table( -- Not sure what goes here )
    LANGUAGE 'plpgsql'

    COST 100
    VOLATILE 
AS $BODY$

DECLARE 
    sqlQuery character varying;

BEGIN

sqlQuery := 'select col1,col2,col3 from ' || tableName || ' where id= ''' || idValue || ''' order by idValue asc limit '''|| limitValue ||'''';

RETURN QUERY EXECUTE sqlQuery;

END

$BODY$;

这里表应动态选择。表的列名称相同。但是它的类型不同。

例如:表1:col1字符可变,col2 uuid,col3 json表2:col1 uuid,col2字符变化,col3字符变化等。

有没有一种方法可以动态定义结果表列类型?

postgresql
1个回答
0
投票

如果在创建函数时我们不知道返回列的名称或数据类型,那将是您的输入值决定您将获得的结果集的情况。如何处理这种情况?

© www.soinside.com 2019 - 2024. All rights reserved.