DO $$
DECLARE companyNrs text[] = ARRAY(SELECT LPAD(companynr::text, 5, '0') FROM s_users);
companyNr text;
BEGIN
FOREACH companyNr IN ARRAY companyNrs
LOOP
raise notice 'notice message %', companyNr;
END LOOP;
END; $$
上面的 postgresql 脚本可以在 DataGrip 上完美运行。但是如果我在循环中添加一个 DECLARE 语句(如下所示),它会给出多个语法错误。这里有什么规则?
您在文档中哪里找到这样的语法?
您需要在同一块中声明变量。
或者可以声明另一个子块:
带有
EXCEPTION
子句的子块是隐式保存点,会对性能产生影响。不确定没有EXCEPTION
子句的子块。它们也可能不是廉价的语法糖。