PG 实现 Dynamic SQL

CREATE OR REPLACE FUNCTION public.exec(
	text)
    RETURNS SETOF RECORD
    LANGUAGE 'plpgsql'
AS $BODY$
 BEGIN 
 	RETURN QUERY EXECUTE $1 ; 
 END 
$BODY$;

 

使用方法:

select * from exec('select now()') as t(dt timestamptz)

setof record 的调用方需提供类型声明。

原文地址:https://www.cnblogs.com/inshua/p/7659819.html