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 中捕获警告或通知。只有例外是可捕获的。
我在这里得到了一个 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 中捕获警告或通知。只有例外是可捕获的。