【发布时间】:2014-07-16 13:26:45
【问题描述】:
我正在尝试创建一个非常简单的 PostgreSQL 函数,尽管我不断收到一个非常奇怪的语法错误。我使用的语法与我在网上看到的任何语法都不同(尽管这是教科书使用的语法),因此我无法弄清楚它为什么会失败......
这是 SQL:
CREATE OR REPLACE FUNCTION gsum(graphID integer)
RETURNS integer
BEGIN
DECLARE total integer DEFAULT 0
SELECT sum(weight) INTO total
FROM Edge
WHERE gno = graphID
RETURN total;
END;
错误是:
ERROR: syntax error at or near "BEGIN"
LINE 3: BEGIN
^
********** Error **********
ERROR: syntax error at or near "BEGIN"
SQL state: 42601
Character: 68
【问题讨论】:
-
您的语法看起来像 PSM - 但在 PostgreSQL 中是错误的 - 支持的语言不止一种(并且它需要有点奇怪的 CREATE FUNCTION 语法)。 PLpgSQL 基于 ADA 语言——或者更多基于 PL/SQL——什么是简化的 ADA。
标签: sql database function postgresql plpgsql