PostgreSQL异常处理详细信息与GET STACKED DIAGNOSTICS

PostgreSQL异常处理详细信息与GET STACKED DIAGNOSTICS,postgresql,pgadmin,Postgresql,Pgadmin,我使用简单的函数来处理异常,代码是 CREATE OR REPLACE FUNCTION test(INT4) RETURNS void as $$ DECLARE v_state TEXT; v_msg TEXT; v_detail TEXT; v_hint TEXT; v_context TEXT; BEGIN BEGIN INSERT INTO test2 (id) VALUES ($1);

我使用简单的函数来处理异常,代码是

CREATE OR REPLACE FUNCTION test(INT4) RETURNS void as $$

DECLARE

    v_state   TEXT;
    v_msg     TEXT;
    v_detail  TEXT;
    v_hint    TEXT;
    v_context TEXT;
BEGIN

    BEGIN
        INSERT INTO test2 (id) VALUES ($1);
    EXCEPTION WHEN others THEN
        GET STACKED DIAGNOSTICS
            v_state   = RETURNED_SQLSTATE,
            v_msg     = MESSAGE_TEXT,
            v_detail  = PG_EXCEPTION_DETAIL,
            v_hint    = PG_EXCEPTION_HINT,
            v_context = PG_EXCEPTION_CONTEXT;
        raise notice E'Got exception:
            state  : %
            message: %
            detail : %
            hint   : %
            context: %', v_state, v_msg, v_detail, v_hint, v_context;
    END;
    RETURN;
END;
$$ language PLpgSQL;
但它给出了
错误:语法错误位于或接近“STACKED”GET STACKED DIAGNOSTICS


我正在使用postGreSql 9.1和pgadmin 3。

您需要升级到postGreSql 9.2。。。据我所知,9.1版本不支持GET STACKED DIAGNOSTICS。

是的,非常感谢您,我已经将postgreSQL 9.1版升级到9.2版,现在它工作正常。