2012-11-29 47 views
1

我有嵌套光標循環,我想追上錯誤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; 

我如何能解決這個任何想法?

回答

2

設置一個標誌爲1,當你進入內環,將其設置爲0,當你離開它。

然後:

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

END; 
+0

這是聰明的,謝謝。我仍然有第二處理嵌套處理程序發生衝突的問題(第二被觸發,嵌套的不算),我想我就改變我的邏輯,將其取下 – ftkg