我正在尝试在postgresql sql脚本中使用默认值0声明整数变量:
DECLARE user_id integer;
但它返回异常:
错误:语法错误处于或接近“整数”
我不知道如何声明变量然后在while循环中使用此变量。
答案 0 :(得分:3)
您无法在SQL语句中使用DECLARE。你想做什么需要plpgsql。 danielarend的回答是正确的,但你可能想要探索DO(https://www.postgresql.org/docs/current/static/sql-do.html),它可以让你编写adhoc plpgsql而无需定义函数。
答案 1 :(得分:2)
您必须将代码放在用户定义的函数中。它不适用于sql窗口。下面的示例是一个函数,它返回您发送的数字。变量
--mybase is your database name. If public, remove it.
CREATE OR REPLACE FUNCTION mybase.my_new_rotine(numeric)
RETURNS numeric AS
$BODY$
--here, get the first variable from function
declare id numeric= $1;
begin
--return the number
return id;
end;
$BODY$
LANGUAGE plpgsql VOLATILE
然后,您可以在sql窗口中使用它,如下所示:
select * from mybase.my_new_rotine(1)
将返回1