我在这里有一个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。
答案 0 :(得分:2)
PostgreSQL 8.2.15是一个非常古老的不受支持的版本。此版本不支持SQLSTATE
常量。
但是你的代码不应该适用于任何PostgreSQL版本。你不能在PostgreSQL中捕获警告或通知。只有例外是可以捕获的。