我正在编写一个函数,该函数具有与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中的等效。
答案 0 :(得分:0)
我会使用data_exception
,请参阅the documentation。
这实际上是一类异常,其中包含所有可能导致数据出错的异常,但我想这是最好的替代方法。