您需要在第一个游标循环内定义一个新的BLOCK,并在该块中使用不同的声明.

就像是:

BLOCK1: begin

declare v_col1 int;

declare no_more_rows boolean1 := FALSE;

declare cursor1 cursor for

select col1

from MyTable;

declare continue handler for not found

set no_more_rows1 := TRUE;

open cursor1;

LOOP1: loop

fetch cursor1

into v_col1;

if no_more_rows1 then

close cursor1;

leave LOOP1;

end if;

BLOCK2: begin

declare v_col2 int;

declare no_more_rows2 boolean := FALSE;

declare cursor2 cursor for

select col2

from MyOtherTable

where ref_id = v_col1;

declare continue handler for not found

set no_more_rows2 := TRUE;

open cursor2;

LOOP2: loop

fetch cursor2

into v_col2;

if no_more_rows then

close cursor2;

leave LOOP2;

end if;

end loop LOOP2;

end BLOCK2;

end loop LOOP1;

end BLOCK1;

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐