什么 PL/pgSQL 异常等同于 PostgreSQL 中 Oracle 的 VALUE_ERROR?

What PL/pgSQL exception is the equivalent for Oracle's VALUE_ERROR in PostgreSQL?

我正在编写一个函数,异常等同于在 PostgreSQL 中捕获 Oracle 中的 VALUE_ERROR。 PostgreSQL 有替代品吗?

CREATE OR REPLACE FUNCTION TEST (a TEXT, b TEXT)
RETURNS INTEGER AS $SUCCESS$
DECLARE SUCCESS INTEGER;
BEGIN
    SUCCESS = 0;
    BEGIN
        UPDATE TABLE_TEST
        SET *****
        WHERE ***;
        SUCCESS = 1;
    EXCEPTION
        WHEN VALUE_ERROR /* throwing error as there is no value-error in postgres */
        SUCCESS = 0;

        UPDATE TABLE_TEST
        SET *****
        WHERE ***;
        SUCCESS = 2;

       WHEN OTHERS THEN
        SUCCESS = 3;

        UPDATE TABLE_TEST
        SET *****
        WHERE ***;
        SUCCESS = 4;
    END;

   RETURN SUCCESS;
END;
$SUCCESS$ LANGUAGE plpgsql;

代替 value_error 异常,它应该是 PostgreSQL 中的等效项。

我会使用 data_exception,参见 the documentation

这实际上是一个 class 异常,涵盖了数据可能出错的所有内容,但我认为它是最好的替代品。