PostgreSQL函数报错:END附近语法错误,请求排查修正
PostgreSQL函数custTrans语法错误修复
你的函数报错源于PL/pgSQL语法规范问题,具体修正点如下:
- DECLARE段声明变量时,末尾必须加分号
- SELECT INTO语句执行结束后必须加分号
- PL/pgSQL函数需要通过
RETURN语句明确返回结果
修正后的完整代码:
CREATE OR REPLACE FUNCTION custTrans(categ_id int) RETURNS VARCHAR(45) AS $$ DECLARE categ_name varchar(45); -- 补充分号 BEGIN SELECT c.name INTO categ_name FROM category AS c WHERE c.category_id = categ_id; -- 补充分号 RETURN categ_name; -- 添加返回语句 END; $$ language plpgsql;
如果只是简单根据ID查询返回分类名称,也可以用更简洁的SQL函数写法,无需PL/pgSQL:
CREATE OR REPLACE FUNCTION custTrans(categ_id int) RETURNS VARCHAR(45) AS $$ SELECT name FROM category WHERE category_id = categ_id; $$ language sql;
内容的提问来源于stack exchange,提问作者Michael
相关产品推荐
相关产品推荐

