我在PostgreSQL中编写函数,但它不允许我在其中声明变量。这是功能。
CREATE FUNCTION clean_emp() RETURNS void AS
$func$
DECLARE cnt varchar;
$func$ LANGUAGE SQL;
错误消息 错误:语法错误在或附近" varchar" SQL状态:42601 性格:66
答案 0 :(得分:4)
这并不奇怪。语言SQL不支持变量。你必须使用语言plpgsql。
CREATE OR REPLACE FUNCTION clean_emp()
RETURNS void AS $$
DECLARE cnt varchar;
BEGIN
END;
$$ LANGUAGE plpgsql;
在文档http://www.postgresql.org/docs/current/static/plpgsql.html中查看更多内容。
PostgreSQL有更多用于编写函数的语言。 SQL语言非常适合一行单语句宏。 PLpgSQL是经典的本机语言,类似于带有嵌入式SQL的Oracle PL / SQL。