无法在PostgreSQL的函数内部声明变量 [英] Can't declare variable inside function on PostgreSQL

查看:136
本文介绍了无法在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆