【问题标题】:Teradata Raise ErrorTeradata 引发错误
【发布时间】:2018-06-28 06:31:16
【问题描述】:

我在 teradata v16 中制作了一个存储过程,需要我提出一个错误。我可以看到如何使代码捕获错误(见下文),但无法像其他应用程序那样弄清楚如何引发错误。有人能告诉我如何引发错误吗?

    BEGIN
  DECLARE SQL_ERR_CDE INTEGER;
  DECLARE SQL_STATE INTEGER;
  DECLARE TMPMSG VARCHAR(133);

L1: BEGIN
      DECLARE EXIT HANDLER FOR SqlException
        BEGIN
          SET SQLERRCDE = SqlCode;
          SET SQLSTTE = SqlState;
          SET SQLMSG = TMPMSG;
          SET SQL_ERR_CDE = SqlCode;
          SET SQL_STATE = SqlState;
          INSERT INTO DW.ERR_STD_PRC_LOG
          VALUES ('DW', 'SP_INDEX_STATS' , 'E' , :SQL_ERR_CDE,:SQL_STATE, :TMPMSG, DATE, TIME);  
        END;

【问题讨论】:

    标签: teradata raise custom-error-handling


    【解决方案1】:

    您尝试过 ABORT 吗?这应该使用您想要包含的任何消息使 SP 调用出错:

    ABORT 'Error Message';
    

    https://info.teradata.com/HTMLPubs/DB_TTU_16_00/index.html#page/SQL_Reference/B035-1146-160K/hch1472240804504.html

    另外,看看这个如何使用信号:Teradata: How can I raise an error in a stored procedures

    【讨论】:

    • 我开始发布关于 SIGNAL 的答案,然后注意到它包含在您的第二个链接中 :-)
    • 更新了我的帖子:)
    • 我知道信号。但这无济于事,因为我需要做的是让错误处理程序向我提出一些自定义错误后 SP 生成的报告的利益相关者发送一封电子邮件
    猜你喜欢
    • 2014-06-17
    • 2015-12-02
    • 2016-12-01
    • 2018-05-24
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 2014-04-08
    • 2015-05-14
    相关资源
    最近更新 更多