我有一个非常简单的PL / pgSQL脚本:
declare x varchar(100);
当我运行它时,我收到一条消息:
[WARNING ] declare x varchar(100)
ERROR: syntax error at or near "varchar"
LINE 1: declare x varchar(100)
^
我真的不明白这有什么问题。
答案 0 :(得分:14)
你可以在PostgreSQL中的函数体内使用程序语句 only 。
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 $$
DECLARE x int;
BEGIN
x := 10;
RAISE NOTICE '>>>%<<<', x;
END;
$$;
不能将过程语句用作T-SQL之类的SQL语句。
答案 1 :(得分:0)
使用例子
DO $$
Declare
test varchar;
begin
test := 'teste';
if (char_length(test) > 0) then
RAISE NOTICE '>>>%<<<', test;
end if;
end;
$$;
答案 2 :(得分:0)
我已经通过以下代码解决了这个问题:
do $$
declare InvestigationTypeId int;
declare var_STDStatusMasterId int;
begin
InvestigationTypeId := null;
var_STDStatusMasterId := null;
end;
$$;