我正在研究一种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字符变化等。
有没有一种方法可以动态定义结果表列类型?