多个处理程序冲突

时间:2012-11-29 15:35:19

标签: mysql sql stored-procedures

我有嵌套的游标循环,我想在外循环上捕获错误1329,没有数据获取。我怎样才能做到这一点?

我尝试为这个外部循环游标添加第二个CONTINUE HANDLER,但它捕获嵌套循环错误(不想要),最终不会触发嵌套处理程序。

我有这个:

DECLARE cur1 CURSOR FOR select data, valor_split, valor_div from tbl1 where data >= primeira_mov and id_papel = idpapel order by data DESC;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
DECLARE CONTINUE HANDLER FOR 1329 BEGIN
        SET nodata_issue = 1;
        SET dateof_issue = datasplit;
    END;

关于如何解决这个问题的任何想法?

1 个答案:

答案 0 :(得分:2)

进入内循环时将标志设置为1,离开时将其设置为0.

然后:

DECLARE CONTINUE HANDLER FOR 1329 BEGIN
    IF flag_innerloop = 0 THEN do_something;
    ELSE do_something_else;

END;