1

ネストされたカーソルループがあり、外側のループでエラー1329、データフェッチなしをキャッチしたかったのです。これどうやってするの?

この外側のループカーソルに2番目のCONTINUEHANDLERを追加しようとしましたが、ネストされたループエラー(不要)をキャッチし、ネストされたハンドラーをトリガーしなくなりました。

私はこれを持っています:

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;

どうすればこれを解決できるかについてのアイデアはありますか?

4

1 に答える 1

2

内側のループに入るときはフラグを 1 に設定し、内側のループから出るときはフラグを 0 に設定します。

それで:

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

END;
于 2012-11-29T16:24:51.663 に答える