PostgreSQL中执行简单perform调用报语法错误是什么原因
语法错误原因
PERFORM是PL/pgSQL 专属关键字,仅允许在存储函数、存储过程、匿名PL/pgSQL块的内部逻辑中使用,不支持作为普通SQL语句直接在顶层交互界面执行,报错是使用场景不符合要求导致的,和foo函数本身的定义无关。
解决方法
若要直接在SQL交互界面调用该函数
将PERFORM替换为SELECT即可,正确写法如下:
SELECT * FROM foo();
若需要在PL/pgSQL逻辑中调用且忽略函数返回值
需要将调用逻辑放在PL/pgSQL块的包裹范围内,正确写法如下:
DO $$ BEGIN PERFORM * FROM foo(); END; $$ LANGUAGE plpgsql;
内容的提问来源于stack exchange,提问作者francistheturd
相关产品推荐
相关产品推荐

