无法在PostgreSQL上声明函数内部的变量

时间:2016-03-25 05:00:55

标签: postgresql

我在PostgreSQL中编写函数,但它不允许我在其中声明变量。这是功能。

CREATE FUNCTION clean_emp() RETURNS void AS 
$func$
DECLARE cnt varchar;

$func$ LANGUAGE SQL;

错误消息 错误:语法错误在或附近" varchar" SQL状态:42601 性格:66

1 个答案:

答案 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。

相关问题