plsql结束_SQL记录-PLSQL-EXIT/CONTINUE/GOTO

在PL/SQL编程语言中,EXIT语句有以下两种用法:

当循环中遇到EXIT语句循环立即终止,程序控制继续下一个循环语句后面。

如果使用嵌套循环(即一个循环内的另一个循环),EXIT指令将停止最内层循环的执行,并开始执行的下一行代码的程序段之后。

语法:

在PL/SQL EXIT语句的语法如下:

EXIT;

流程图:

例如:

DECLAREa number(2):=10;BEGIN-- while loop execution WHILEa <20LOOP

dbms_output.put_line ('value of a: '||a);a :=a +1;IFa >15THEN-- terminate the loop using the exit statementEXIT;ENDIF;ENDLOOP;END;/

当上述代码在SQL提示符执行时,它产生了以下结果:

value of a: 10

value of a: 11

value of a: 12

value of a: 13

value of a: 14

value of a: 15

PL/SQL procedure successfully completed.

EXIT WHEN 语句

在EXIT-WHEN语句允许的条件下,在WHEN子句进行评估计算。如果条件为真,循环完成并控制立即传递到END LOOP语句。

以下是EXIT WHEN语句的两个重要方面:

直到条件为true,EXIT-WHEN语句就像一个空语句,除了评估计算条件,并不会终止循环。

循环内部的语句必须更改条件的值。

示例:

PL/ SQL EXIT WHEN语句的语法如下:

EXITWHENcondition;

EXIT WHEN语句使用EXIT语句条件代替条件语句 if-then 退出一样

示例:

DECLAREa number(2):=10;BEGIN-- while loop execution WHILEa <20LOOP

dbms_output.put_line ('value of a: '||a);a :=a +1;-- terminate the loop using the exit when statementEXITWHENa >15;ENDLOOP;END;/

当上述代码在SQL提示符执行时,它产生了以下结果:

value of a: 10

value of a: 11

value of a: 12

value of a: 13

value of a: 14

value of a: 15

PL/SQL procedure successfully completed.

PL/SQL CONTINUE语句

CONTINUE语句使循环跳过其身的其余部分,并立即重新测试其使用条件重申之前。换句话说,它会强制循环的下一次迭代发生,跳过其间的任何代码。

语法:

continue语句的语法如下:

CONTINUE;

流程图

例子:

DECLARE

a number(2):=10;BEGIN--whileloop execution

WHILE a <20LOOP

dbms_output.put_line ('value of a: '||a);a :=a +1;IF a =15THEN

--skip the loop usingthe CONTINUE statement

a :=a +1;CONTINUE;ENDIF;ENDLOOP;END;/

当上述代码在SQL提示符执行时,它产生了以下结果:

value of a: 10

value of a: 11

value of a: 12

value of a: 13

value of a: 14

value of a: 16

value of a: 17

value of a: 18

value of a: 19

PL/SQL procedure successfully completed.

PL/SQL GOTO语句

在PL/SQL编程语言的GOTO语句提供无条件跳转到在同一个子程序的GOTO标签的语句。

注意:GOTO语句是不建议使用在任何编程语言,因为它使得程序难以跟踪控制流程,使程序难以理解,难以修改。如果使用GOTO的任何程序可以改写,就尽量不要使用GOTO语句。

语法:

在PL/ SQL一个GOTO语句的语法如下:

GOTO label;....<>statement;

流程图:

例子:

DECLARE

a number(2):=10;BEGIN<>--whileloop execution

WHILE a <20LOOP

dbms_output.put_line ('value of a: '||a);a :=a +1;IF a =15THEN

a :=a +1;GOTO loopstart;ENDIF;ENDLOOP;END;/

当上述代码在SQL提示符执行时,它产生了以下结果:

value of a: 10

value of a: 11

value of a: 12

value of a: 13

value of a: 14

value of a: 16

value of a: 17

value of a: 18

value of a: 19

PL/SQL procedure successfully completed.

使用GOTO语句的限制

PL/SQL GOTO语句强加以下限制:

goto语句不能跳转到IF语句,CASE语句,循环语句或子块。

goto语句不能从一个分支IF语句子句到另一个或从一个CASE语句WHEN子句到另一个。

goto语句不能从外部块分支成子块(即一个内BEGIN-END块)。

goto语句不能分支出来一个子程序。提前结束子程序,要么使用RETURN语句或子程序结束前在正确的GOTO分支的地方。

goto语句不能从一个异常处理分支回到当前BEGIN-END块。但是,GOTO语句可以从一个异常处理程序跳转到一个封闭块。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值