gpt4 book ai didi

sql - Greenplum plpgsql 函数在输入结束时返回语法错误

转载 作者:行者123 更新时间:2023-11-29 12:32:48 25 4
gpt4 key购买 nike

我在 Greenplum 中编写了一个 PL/pgSQL 函数,该函数需要翻译 interval哪个< interval '00:00:00'为正值。

例如区间值-23:57:00应该翻译成00:03:00 .所以我写了这个函数:

CREATE OR REPLACE FUNCTION abstime(timeval INTERVAL)
RETURNS INTERVAL AS $$
BEGIN
IF timeval < INTERVAL '00:00:00' THEN
RETURN timeval + INTERVAL '24:00:00';
ELSE
RETURN timeval;
END IF;
RETURN;
END;
$$ LANGUAGE plpgsql;

进入后得到:

ERROR:  syntax error at end of input
LINE 1: SELECT
^
QUERY: SELECT
CONTEXT: SQL statement in PL/PgSQL function "abstime" near line 7

我不确定出了什么问题?

最佳答案

现代 PostgreSQL 具有更好的诊断功能:

postgres=# CREATE OR REPLACE FUNCTION abstime(timeval INTERVAL)
RETURNS INTERVAL AS $$
BEGIN
IF timeval < INTERVAL '00:00:00' THEN
RETURN timeval + INTERVAL '24:00:00';
ELSE
RETURN timeval;
END IF;
RETURN; --- SHOULD BE REMOVED
END;
$$ LANGUAGE plpgsql;
ERROR: missing expression at or near ";"
LINE 9: RETURN;
^

第 9 行的 return 无用且缺少表达式。您必须删除第 9 行。在这种情况下,RETURN 语句中需要表达式。

关于sql - Greenplum plpgsql 函数在输入结束时返回语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37341380/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com