SQLSTATE 附近的语法错误

Syntax Error near SQLSTATE

我在这里得到了一个 plpgsql 函数来指示 ANALYZE 期间是否引发了任何警告:

CREATE OR REPLACE FUNCTION analyzeWarning() RETURNS integer AS $$
DECLARE
  warningRaised int;
BEGIN
  warningRaised := 0;
  FOR i IN 1..10
  LOOP
    BEGIN
      ANALYZE;
    EXCEPTION
      WHEN SQLSTATE '01000' THEN return 1;
    END;
  END LOOP;
  RETURN 0;
END;
$$ LANGUAGE plpgsql;

这个函数一直给我附近的语法错误:

ERROR:  syntax error at or near "SQLSTATE"
LINE 11:           WHEN SQLSTATE '01000' THEN return 1;

我不确定我在哪里遗漏了语法错误。

我的 postgres 版本是 8.2.15。

PostgreSQL 8.2.15 是相当旧的不受支持的版本。此版本不支持 SQLSTATE 常量。

但是您的代码不应适用于任何 PostgreSQL 版本。您不能在 PostgreSQL 中捕获警告或通知。只有例外是可捕获的。