对于PostgreSQL中Oracle的VALUE\u错误,什么样的PL/pgSQL异常是等效的?

对于PostgreSQL中Oracle的VALUE\u错误,什么样的PL/pgSQL异常是等效的?,postgresql,exception-handling,plpgsql,postgresql-9.4,Postgresql,Exception Handling,Plpgsql,Postgresql 9.4,我正在编写一个异常函数,相当于捕获PostgreSQL中Oracle中的值错误。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 ***** WHER

我正在编写一个异常函数,相当于捕获PostgreSQL中Oracle中的值错误。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;
它应该与PostgreSQL中的值\u错误异常等价。

我将使用数据\u异常,请参阅


这实际上是一类异常,包含了所有可能出现数据错误的情况,但我认为这是最好的替代方法。

为什么不在postgres中执行该操作,看看引发了什么类型的异常?@Syedasamreenanjum如果解决了您的问题,请接受答案。