【问题标题】:What PL/pgSQL exception is the equivalent for Oracle's VALUE_ERROR in PostgreSQL?什么 PL/pgSQL 异常与 PostgreSQL 中 Oracle 的 VALUE_ERROR 等效?
【发布时间】: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


【解决方案1】:

我会使用data_exception,请参阅the documentation

这实际上是一类例外,涵盖了所有数据可能出错的情况,但我会说它是最好的替代品。

【讨论】:

  • @Syedasamreenanjum 如果解决了您的问题,请接受答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-11-15
  • 2017-05-10
  • 2015-07-22
  • 1970-01-01
  • 2012-08-22
  • 2016-06-05
相关资源
最近更新 更多