Postgresql PL/pgSQL语法错误
我有一个非常简单的PL/pgSQL脚本:Postgresql PL/pgSQL语法错误,postgresql,syntax,plpgsql,Postgresql,Syntax,Plpgsql,我有一个非常简单的PL/pgSQL脚本: declare x varchar(100); 当我运行它时,会收到一条消息: [WARNING ] declare x varchar(100) ERROR: syntax error at or near "varchar" LINE 1: declare x varchar(100) ^ 我真的不明白这是怎么回事。您只能在PostgreSQ
declare x varchar(100);
当我运行它时,会收到一条消息:
[WARNING ] declare x varchar(100)
ERROR: syntax error at or near "varchar"
LINE 1: declare x varchar(100)
^
我真的不明白这是怎么回事。您只能在PostgreSQL的函数体内部使用过程语句
CREATE OR REPLACE FUNCTION foo()
RETURNS int AS
$$ -- here start procedural part
DECLARE x int;
BEGIN
x := 10;
RETURN x;
END;
$$ -- here finish procedural part
LANGUAGE plpgsql; -- language specification
或在临时功能中(匿名块)
DO$$
声明x int;
开始
x:=10;
提出通知'>>>%使用示例
DO $$
Declare
test varchar;
begin
test := 'teste';
if (char_length(test) > 0) then
RAISE NOTICE '>>>%<<<', test;
end if;
end;
$$;
DO$$
声明
测试varchar;
开始
测试:='teste';
如果(字符长度(测试)>0),则
引起注意'>>>%显示整个创建函数脚本这是整个脚本。您必须将其包装在命令中。这不是一个完整(语法正确)的PL/pgSQL“脚本”
DO $$
Declare
test varchar;
begin
test := 'teste';
if (char_length(test) > 0) then
RAISE NOTICE '>>>%<<<', test;
end if;
end;
$$;