什么 PL/pgSQL 异常与 PostgreSQL 中 Oracle 的 VALUE_ERROR 等效?
Posted
技术标签:
【中文标题】什么 PL/pgSQL 异常与 PostgreSQL 中 Oracle 的 VALUE_ERROR 等效?【英文标题】:What PL/pgSQL exception is the equivalent for Oracle's VALUE_ERROR in PostgreSQL? 【发布时间】: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中执行操作,看看引发了什么类型的异常? 【参考方案1】:我会使用data_exception
,请参阅the documentation。
这实际上是一类例外,涵盖了所有数据可能出错的情况,但我会说它是最好的替代品。
【讨论】:
@Syedasamreenanjum 如果解决了您的问题,请接受答案。以上是关于什么 PL/pgSQL 异常与 PostgreSQL 中 Oracle 的 VALUE_ERROR 等效?的主要内容,如果未能解决你的问题,请参考以下文章