postgres异常处理

时间:2018-03-07 04:50:22

标签: postgresql function exception plpgsql postgresql-9.1

我有一个带有多个查询的postgresql函数来验证表数据。但是如果查询之一发生错误,那么函数的整个过程就会停止。但我想要的是,它应该通过引发错误警告错误而不是逃避错误并继续执行其他查询来打印错误。

--Begin function
   BEGIN
    ----- query 1--------
   EXCEPTION 
     WHEN others THEN    
       ------------------'Exception in query 1';------------
   END;

   BEGIN
    ------------------------ Query 2---------------------
   EXCEPTION 
     WHEN others THEN    
      -------------------'Exception in query 2';-------------------
   END;
--End function

这是我使用异常的代码,但我在函数中有超过100个查询,所以我必须将每个查询放在异常块中。我要求一些其他简单的方法来解决问题。

1 个答案:

答案 0 :(得分:2)

您可以使用嵌套块来处理某些代码抛出的异常,如下所示:

--Begin function
   BEGIN
    --Validation query 1
   EXCEPTION 
     WHEN others THEN    
       RAISE INFO 'Exception in query 1';
   END;

   BEGIN
    -- Query 2
   EXCEPTION 
     WHEN others THEN    
       RAISE INFO 'Exception in query 2';
   END;
--End function