无法在PostgreSQL的函数内部声明变量 [英] Can't declare variable inside function on PostgreSQL
问题描述
我正在用PostgreSQL编写函数,但是不允许我在其中声明变量。这是函数。
I am writing function in PostgreSQL but it doesn't allow me to declare variable inside it. Here is the function.
CREATE FUNCTION clean_emp() RETURNS void AS
$func$
DECLARE cnt varchar;
$func$ LANGUAGE SQL;
错误消息
错误:语法错误在 varchar处或附近
SQL状态:42601
字符:66
Error Message ERROR: syntax error at or near "varchar" SQL state: 42601 Character: 66
推荐答案
这并不奇怪。 SQL语言不支持变量。您必须使用语言plpgsql。
It is not surprise. The language SQL doesn't support variables. You have to use the language 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。
PostgreSQL has more languages for writing function. The SQL language is perfect for one line single statement macros. The PLpgSQL is classical native language similar to Oracle's PL/SQL with embedded SQL.
这篇关于无法在PostgreSQL的函数内部声明变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!