SQLSTATE附近的语法错误

时间:2015-10-13 17:31:43

标签: postgresql plpgsql postgresql-8.2

我在这里有一个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。

1 个答案:

答案 0 :(得分:2)

PostgreSQL 8.2.15是一个非常古老的不受支持的版本。此版本不支持SQLSTATE常量。

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