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 的调用方需提供类型声明。

posted @ 2017-10-13 10:23  Inshua  阅读(187)  评论(0编辑  收藏  举报