【问题标题】:Teradata - How to handle exceptions 'Call failed' in procedure?Teradata - 如何处理程序中的异常“调用失败”?
【发布时间】:2014-08-01 07:36:37
【问题描述】:

全部

我有一个用于调用其他子程序的主程序。我在主过程中添加了'DECLARE EXIT HANDLER FOR SQLEXCEPTION'。但是当子过程中出现任何异常时,主过程中的 HANDLER 不起作用。

那么我怎样才能捕获所有超程序中产生的异常呢? 我的 Teradata 版本是 13.1,下面是我的代码的简化版本。

REPLACE PROCEDURE proc_main()
BEGIN

    -- # Handl SQLException
    DECLARE EXIT HANDLER FOR SQLEXCEPTION
    BEGIN
        insert log table.
    END;

    CALL proc_sub();
END; 

谢谢!

弗兰克·刘

【问题讨论】:

    标签: stored-procedures exception-handling teradata


    【解决方案1】:

    这些错误是否已被子过程中的异常处理程序捕获?

    只有未处理的异常才会传播到调用过程。

    您可以使用 RESIGNAL 再次抛出错误。

    你能提供更多细节吗?

    【讨论】:

      猜你喜欢
      • 2016-12-12
      • 1970-01-01
      • 1970-01-01
      • 2017-10-20
      • 2023-04-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-07
      • 2013-01-10
      相关资源
      最近更新 更多