【发布时间】:2018-08-21 08:45:19
【问题描述】:
我正在编写一个带有异常的函数,该函数相当于在 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 中的等价物。
【问题讨论】:
-
为什么不直接在postgres中执行操作,看看引发了什么类型的异常?
标签: postgresql exception-handling plpgsql postgresql-9.4