![](/img/trans.png)
[英]PgAdmin: syntax to set a variable for use in a postgresql transaction
[英]PostgreSQL Syntax error in PGAdmin
我是PostgreSQL的新手,并且正在使用PGAdmin中的查询工具。 我正在尝试运行使用变量的pgsql查询,但我似乎无法正确使用语法。
这是一个给出语法错误的示例查询:
DECLARE
num INTEGER;
BEGIN
num := 3;
PRINT num;
END;
更新:
好的,让我试着解释一下。 我来自SQL服务器背景。 在管理工作室中,我可以打开一个查询窗口并使用(T)-SQL查询。
例如,我可以写这样的东西:
DECLARE @num INT
SET @num = 3
SELECT @num
我知道这是一个愚蠢的例子,但我只是试图声明一个变量并用它做一些事情。 我正在尝试熟悉PL / PGSQL。
再次更新:
又是我。 我正在尝试下面的脚本并获得“[ERROR] 7.0-2:语法错误,意外字符”。 这是否适用于PGAdmin?
DECLARE
num INTEGER;
BEGIN
num := 3;
RAISE NOTICE '%', num;
END;
您可以使用do语句。 例如:
do $$
declare
num integer := 10;
begin
RAISE INFO 'VARIABLE: %', num;
end;
$$language plpgsql;
当您使用pgadmin时,您必须使用按钮EXECUTE QUERY而不是Execute pdScript,如下所述:
do语句的文档在这里:
只是改写并“具体化”其他人的说法:PostgreSQL中没有内联程序 。 也没有PRINT声明 。 你必须:
CREATE OR REPLACE FUNCTION test() RETURNS void AS $$
DECLARE
num INTEGER;
BEGIN
num := 3;
RAISE NOTICE '%', num;
END;
$$ LANGUAGE plpgsql;
SELECT test();
如果您正在尝试打印输出num
(例如,用于调试),您可以尝试:
RAISE NOTICE '%', num;
http://www.postgresql.org/docs/8.4/static/plpgsql-errors-and-messages.html
PRINT
在PL / pgSQL中没有任何意义。
我不知道你想要实现什么。 PostgreSQL不支持这种语法。 类似的关键字(PRINT ?!除外)在PL / pgSQL中,这是用于构建FUNCTIONS的过程语言,而不是用于编写独立的SQL查询。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.