我正在用PostgreSQL写函数,但它不允许我在里面声明变量。下面是函数。
CREATE FUNCTION clean_emp() RETURNS void AS
$func$
DECLARE cnt varchar;
$func$ LANGUAGE SQL;
字符串
错误消息
ERROR: syntax error at or near "varchar"
SQL state: 42601
Character: 66
型
我正在用PostgreSQL写函数,但它不允许我在里面声明变量。下面是函数。
CREATE FUNCTION clean_emp() RETURNS void AS
$func$
DECLARE cnt varchar;
$func$ LANGUAGE SQL;
字符串
错误消息
ERROR: syntax error at or near "varchar"
SQL state: 42601
Character: 66
型
2条答案
按热度按时间fhg3lkii1#
这并不奇怪。SQL语言不支持变量。你必须使用plpgsql语言。
字符串
更多信息请参见文档http://www.postgresql.org/docs/current/static/plpgsql.html。
PostgreSQL有更多的语言来编写函数。SQL语言非常适合一行单语句宏。PLpgSQL是经典的本地语言,类似于Oracle的PL/SQL和嵌入式SQL。
vql8enpb2#
你可以在DECLARE clause中用
:=
,=
声明局部变量,如下所示。* 我的答案详细解释了如何声明局部变量:字符串