【问题标题】:Syntax Error near SQLSTATESQLSTATE 附近的语法错误
【发布时间】:2015-10-13 17:31:42
【问题描述】:

我在这里有一个 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 plpgsql postgresql-8.2


    【解决方案1】:

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

    但是您的代码不应该在任何 PostgreSQL 版本上运行。您不能在 PostgreSQL 中捕获警告或通知。只有异常是可捕获的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-03
      • 1970-01-01
      • 2013-06-22
      • 2017-08-31
      • 2023-03-03
      • 2016-02-16
      • 2018-08-21
      • 2017-01-12
      相关资源
      最近更新 更多