ai didi

postgresql - Postgres-错误 : syntax error at or near "IF"

转载 作者:行者123 更新时间:2023-11-29 13:48:00 24 4
gpt4 key购买 nike

我有一个函数,我需要根据 inputid 进行不同的选择。所以我添加了如下条件。

....
begin
IF(iv_binrocess = 1 AND IsNull(iv_binno,'') != '') THEN
...//some process here
END If;
...
End

当我运行该函数时,出现错误“

ERROR: syntax error at or near "IF" I referred many sites and tutorials, nothing helped me.

谁能帮我解决这个问题?

谢谢

最佳答案

WAG,因为你删除了大部分重要信息:你正在尝试创建一个具有 PL/pgsql 主体的函数,但声明了它 SQL .

craig=> CREATE FUNCTION test() RETURNS void LANGUAGE sql AS 
$$ BEGIN IF TRUE THEN PERFORM 1; END IF; END; $$ ;
ERROR: syntax error at or near "IF"
LINE 1: ...TION test() RETURNS void LANGUAGE sql AS $$ BEGIN IF TRUE TH...

将 PL/PgSQL 函数声明为 LANGUAGE plpgsql .

如果您想使用 SQL 函数,请使用 CASE表达式而不是 IF .

CREATE FUNCTION test2() RETURNS integer LANGUAGE sql 
AS $$ SELECT CASE WHEN TRUE THEN 1 ELSE 0 END; $$;

(请注意,我没有费心将这些格式化为可读的格式。在实际代码中不要像这样在一行中编写所有函数。)

关于postgresql - Postgres-错误 : syntax error at or near "IF",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45324973/

24 4 0
文章推荐: python - psycopg2 的服务器连接状态值是什么意思?
文章推荐: postgresql - 错误 : extra data after last expected column - COPY
文章推荐: json - Json 数组成行 + postgresql + node.js
文章推荐: python - Django Rest Framework 在本地主机的 PATCHing 中工作正常,但在同源环境中失败
行者123
个人简介

我是一名优秀的程序员,十分优秀!

滴滴打车优惠券免费领取
滴滴打车优惠券
全站热门文章
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com