我是PostgreSQL的新手,并且正在使用PGAdmin中的查询工具.我正在尝试运行使用变量的pgsql查询,但我似乎无法正确使用语法.
这是一个给出语法错误的示例查询:
DECLARE
num INTEGER;
BEGIN
num := 3;
PRINT num;
END;
Run Code Online (Sandbox Code Playgroud)
更新:
好的,让我试试解释一下.我来自SQL服务器背景.在管理工作室中,我可以打开一个查询窗口并使用(T)-SQL查询.
例如,我可以写这样的东西:
DECLARE @num INT
SET @num = 3
SELECT @num
Run Code Online (Sandbox Code Playgroud)
我知道这是一个愚蠢的例子,但我只是试图声明一个变量并用它做一些事情.我正在尝试熟悉PL/PGSQL.
再次更新:再次
是我.我正在尝试下面的脚本并获得"[ERROR] 7.0-2:语法错误,意外字符".这是否适用于PGAdmin?
DECLARE
num INTEGER;
BEGIN
num := 3;
RAISE NOTICE '%', num;
END;
Run Code Online (Sandbox Code Playgroud)
小智 11
您可以使用do语句.例如:
do $$
declare
num integer := 10;
begin
RAISE INFO 'VARIABLE: %', num;
end;
$$language plpgsql;
Run Code Online (Sandbox Code Playgroud)
当您使用pgadmin时,您必须使用按钮EXECUTE QUERY而不是Execute pdScript,如下所述:
do语句的文档在这里:
http://www.postgresql.org/docs/9.3/static/sql-do.html
只是改写并"具体化"其他人的说法:PostgreSQL 中没有内联程序.也没有PRINT声明.你必须:
CREATE OR REPLACE FUNCTION test() RETURNS void AS $$
DECLARE
num INTEGER;
BEGIN
num := 3;
RAISE NOTICE '%', num;
END;
$$ LANGUAGE plpgsql;
SELECT test();
Run Code Online (Sandbox Code Playgroud)
如果您尝试打印出来num(例如,用于调试),您可以尝试:
RAISE NOTICE '%', num;
Run Code Online (Sandbox Code Playgroud)
http://www.postgresql.org/docs/8.4/static/plpgsql-errors-and-messages.html
PRINT在 PL/pgSQL 中没有任何意义。
| 归档时间: |
|
| 查看次数: |
20877 次 |
| 最近记录: |