所有
我有一个主程序,用于调用其他子程序。我在主程序中添加了'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答案 0 :(得分:0)
这些错误是否已经被子程序中的异常处理程序捕获?
只有无法处理的异常会传播到调用过程。
您可以使用RESIGNAL再次抛出错误。
您能提供更多详情吗?