在雪花中处理继续和退出处理程序

时间:2021-07-15 05:38:47

标签: db2 snowflake-cloud-data-platform

谁能告诉我如何处理雪花中的继续和退出处理程序异常?

DECLARE CONTINUE HANDLER FOR NOT FOUND SET v_atend=1;
DECLARE EXIT HANDLER FOR SQLSTATE '22003'
BEGIN
  SET p_errorMsg = 'SQLSTATE 22003 - Numeric overflow occurred setting bonus';
END;
DECLARE EXIT HANDLER FOR SQLEXCEPTION SET v_atend=1;

1 个答案:

答案 0 :(得分:0)

您也必须使用 Snowflake try catch 块来捕获系统定义的异常或自定义函数。

我从这个 url 中获取的示例代码之一将帮助您了解如何处理 Snowflake 中的错误。

https://docs.snowflake.com/en/sql-reference/stored-procedures-usage.html#label-stored-procedure-error-handling

create procedure broken()
      returns varchar not null
      language javascript
      as
      $$
      var result = "";
      try {
          snowflake.execute( {sqlText: "Invalid Command!;"} );
          result = "Succeeded";
          }
      catch (err)  {
          result =  "Failed: Code: " + err.code + "\n  State: " + err.state;
          result += "\n  Message: " + err.message;
          result += "\nStack Trace:\n" + err.stackTraceTxt; 
          }
      return result;
      $$
      ;
相关问题