Teradata - 如何在程序中处理异常“呼叫失败”?

时间:2014-06-11 09:44:09

标签: stored-procedures exception-handling teradata

所有

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

那么如何捕获所有sup程序中产生的异常呢? 我的Teradata的Vertion是13.1,以下是我的代码的简化版本。

REPLACE PROCEDURE proc_main()
BEGIN

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

    CALL proc_sub();
END; 

谢谢!

Frank Liu

1 个答案:

答案 0 :(得分:0)

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

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

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

您能提供更多详情吗?