首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PostgreSQL语法错误在PGAdmin中的应用

PostgreSQL语法错误在PGAdmin中的应用
EN

Stack Overflow用户
提问于 2009-12-14 05:45:38
回答 5查看 23.8K关注 0票数 8

我是PostgreSQL新手,正在使用PGAdmin中的查询工具。我试图运行使用变量的pgsql查询,但语法似乎不正确。

下面是一个提供语法错误的示例查询:

代码语言:javascript
复制
DECLARE
  num INTEGER;

BEGIN

  num := 3;
  PRINT num;

END;

更新:

好吧,让我来解释一下。我来自SQL server背景。在管理演播室中,我可以打开一个查询窗口并播放(T)-SQL查询。

例如,我可以这样写:

代码语言:javascript
复制
DECLARE @num INT
SET @num = 3
SELECT @num

我知道这是一个愚蠢的例子,但我只是想声明一个变量,然后用它做一些事情。我正在尝试熟悉PL/PGSQL。

再次更新:

又是我。我正在尝试下面的脚本,并得到一个"ERROR 7.0-2:语法错误,意外字符“。这在PGAdmin中是有用的吗?

代码语言:javascript
复制
DECLARE
  num INTEGER;

BEGIN

  num := 3;
  RAISE NOTICE '%', num;

END;
EN

回答 5

Stack Overflow用户

发布于 2014-01-17 11:02:55

您可以使用do语句。例如:

代码语言:javascript
复制
do $$
declare 
  num integer := 10;
begin

    RAISE INFO 'VARIABLE: %', num;

end;
$$language plpgsql;

当您使用pgadmin时,您必须使用按钮执行查询,而不是执行pdScript,如下所示:

http://postgresql.1045698.n5.nabble.com/PgAmin3-Anonymous-code-block-can-t-be-executed-by-pressing-quot-Execute-PG-script-quot-button-td5771073.html

do语句的文档如下:

http://www.postgresql.org/docs/9.3/static/sql-do.html

票数 12
EN

Stack Overflow用户

发布于 2009-12-14 11:50:37

只是为了重新定义和“具体化”其他人说的话:在中没有内联过程。还有没有打印语句。你必须:

代码语言:javascript
复制
CREATE OR REPLACE FUNCTION test() RETURNS void AS $$
DECLARE
  num INTEGER;

BEGIN

  num := 3;
  RAISE NOTICE '%', num;

END;
$$ LANGUAGE plpgsql;

SELECT test();
票数 5
EN

Stack Overflow用户

发布于 2009-12-14 05:57:02

如果您试图打印出num (例如,用于调试),您可以尝试:

代码语言:javascript
复制
RAISE NOTICE '%', num;

http://www.postgresql.org/docs/8.4/static/plpgsql-errors-and-messages.html

PRINT在PL/pgSQL中没有任何意义。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1899123

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档