【发布时间】:2021-11-22 20:16:51
【问题描述】:
这是我的两个函数,
CREATE OR REPLACE FUNCTION public.insert_stagging()
RETURNS void
LANGUAGE plpgsql
AS $function$
BEGIN
INSERT into stagging(data)
select data from mytable where data not like 'table%';
END;
$function$;
CREATE OR REPLACE FUNCTION clear_mytable2()
RETURNS TABLE(data1 text) as
$BODY$
BEGIN
RETURN QUERY (select data from mytable2);
END;
$BODY$
LANGUAGE plpgsql;
不能从另一个函数调用以上两个函数,
CREATE OR REPLACE FUNCTION func_test()
returns void as
$func$
BEGIN
EXECUTE 'SELECT insert_stagging()';
EXECUTE 'SELECT clear_mytable2()';
END
$func$ LANGUAGE plpgsql;
使用上面的代码,如果我改变 'SELECT insert_stagging()'; 的顺序,我只能得到写在 BEGIN 子句中的第一个函数的执行结果 >'SELECT clear_mytable2()'; 那么我只会从 clear_mytable2() 函数中获取执行结果。
如何在 1 个 PostgreSQL 函数中执行两个函数调用?
【问题讨论】:
标签: database postgresql function plpgsql psql