Plsql 如何在Oracle 10G PL/SQL中模拟游标For循环中的Continue语句?

Plsql 如何在Oracle 10G PL/SQL中模拟游标For循环中的Continue语句?,plsql,oracle10g,continue,Plsql,Oracle10g,Continue,在Oracle 10g中,没有continue语句。通常在显式光标中进行模拟,如下所示: OPEN c_cur ; <<cont>> LOOP ... IF condition = 10 THEN GOTO cont ; END IF; END LOOP; CLOSE c_cur ; c_cur循环中rec的 ... 如果条件=10,则 转到cont; 如果结束; 空;——结束不能立即由一个 端环; 用于c\u cur循环中的re

在Oracle 10g中,没有continue语句。通常在显式光标中进行模拟,如下所示:

OPEN c_cur ;
<<cont>>
LOOP
    ...
    IF condition = 10 THEN
        GOTO cont ;
    END IF;
END LOOP;
CLOSE c_cur ;
c_cur循环中rec的

...
如果条件=10,则
转到cont;
如果结束;
空;——结束不能立即由一个
端环;
用于c\u cur循环中的rec
...
如果条件=10,则
转到cont;
如果结束;
空;——结束不能立即由一个
端环;
使用

使用


我相信OP的观点是CONTINUE在10g中不可用。还要注意的是,CONTINUE在11gR1中安装了bug。Oracle的PL/SQL优化器在内部使用大容量操作,调用
CONTINUE
将向前跳转100条记录(不仅仅是一条)。我相信OP的观点是CONTINUE在10g中不可用。另外请注意,CONTINUE在11gR1中有错误。Oracle的PL/SQL优化器在内部使用批量操作,调用
CONTINUE
将向前跳转100条记录(而不仅仅是一条)。
FOR rec IN c_cur LOOP
    ...
END LOOP ;
FOR rec IN c_cur LOOP
    ...
    IF condition = 10 THEN
        GOTO cont ;
    END IF ;

<<CONT>>
NULL; -- END cannot be immediately preceeded by a <<marker>>

END LOOP ;
FOR rec IN c_cur LOOP
    IF condition = 10 THEN
        CONTINUE;
    END IF ;
END LOOP ;