zoukankan      html  css  js  c++  java
  • SQL记录-PLSQL-EXIT/CONTINUE/GOTO

    PL/SQL EXIT语句

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

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

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

    语法:

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

    EXIT;

    流程图:

    PL/SQL exit statement

    例如:

    DECLARE
       a number(2) := 10;
    BEGIN
       -- while loop execution 
       WHILE a < 20 LOOP
          dbms_output.put_line ('value of a: ' || a);
          a := a + 1;
          IF a > 15 THEN
             -- terminate the loop using the exit statement
             EXIT;
          END IF;
       END LOOP;
    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语句的语法如下:

    EXIT WHEN condition;

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

    示例:

    DECLARE
       a number(2) := 10;
    BEGIN
       -- while loop execution 
       WHILE a < 20 LOOP
          dbms_output.put_line ('value of a: ' || a);
          a := a + 1;
          -- terminate the loop using the exit when statement
       EXIT WHEN a > 15;
       END LOOP;
    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;

    流程图

    PL/SQL CONTINUE语句

    例子:

    DECLARE
       a number(2) := 10;
    BEGIN
       -- while loop execution 
       WHILE a < 20 LOOP
          dbms_output.put_line ('value of a: ' || a);
          a := a + 1;
          IF a = 15 THEN
             -- skip the loop using the CONTINUE statement
             a := a + 1;
             CONTINUE;
          END IF;
       END LOOP;
    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;
    ..
    ..
    << label >>
    statement;

    流程图:

    PL/SQL goto statement

    例子:

    DECLARE
       a number(2) := 10;
    BEGIN
       <<loopstart>>
       -- while loop execution 
       WHILE a < 20 LOOP
          dbms_output.put_line ('value of a: ' || a);
          a := a + 1;
          IF a = 15 THEN
             a := a + 1;
             GOTO loopstart;
          END IF;
       END LOOP;
    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语句可以从一个异常处理程序跳转到一个封闭块。

  • 相关阅读:
    定时发布测试,没有内容,不要看了,定明天九点发布,看行不
    四十个非常实用的轻量级JavaScript库
    手把手教你用杰奇建小说站
    IIS与Apache共用80端口方法
    jQuery循环滚动展示代码
    分享二十五个不错的下拉菜单导航JS脚本
    以信用卡还信用卡财付通
    codesmith 如何把选中的多个表生成实体
    从零开始学习jQuery 让页面动起来!
    10 个提供免费域名搜索建议服务的网站
  • 原文地址:https://www.cnblogs.com/xinfang520/p/7721947.html
Copyright © 2011-2022 走看看