`

转载:Oracle PL/SQL之LOOP循环控制语句

 
阅读更多

  PL/SQL中可以使用LOOP语句对数据进行循环处理,利用该语句可以循环执行指定的语句序列。常用的LOOP循环语句包含3种形式:基本的LOOPWHILE...LOOPFOR...LOOP

    LOOP语句的基本语法结构如下:

 

[<<label_name>>]LOOP statement...END LOOP [label_name] 【语法说明】<<label_name>>LOOP结构的标签,是可选项。LOOPLOOP循环开始标志。statementLOOP语句中循环执行的语句序列。END LOOPLOOP循环结束标志,可以添加LOOP结构的标签。

1.基本的LOOP语句
    实例:要求声明变量,每次循环都需要为变量增加数字1,并输出结果。当变量值大于3时,退出循环操作。

    a、利用EXIT...WHEN结束循环操作。

SQL> set serveroutput on;

SQL> --exit when

SQL> declare  

2    v_rlt number(8):=-3;  

3  begin  

4     <<fst_loop>>  

5     loop  

6       dbms_output.put_line('v_rlt = '||v_rlt);  

7       v_rlt:=v_rlt+1;  

8       exit fst_loop when v_rlt > 3;  

9     end loop; 

10       dbms_output.put_line('LOOP循环已经结束!'); 

11  end; 

12   / v_rlt = -3v_rlt = -2v_rlt = -1v_rlt = 0v_rlt = 1v_rlt = 2v_rlt = 3LOOP循环已经结束! PL/SQL procedure successfully completed

    b、利用IF...EXIT语句结束循环

SQL> --if exit

SQL> declare  

2    v_rlt number(8):=-3;  

3  begin  

4     <<fst_loop>>  

5     loop  

6       dbms_output.put_line('v_rlt = '||v_rlt);  

7       v_rlt:=v_rlt+1;  

8       if v_rlt > 3 then  

9        dbms_output.put_line('变量的值已经大于3,当前值为'||v_rlt); 

10        exit fst_loop; 

11       end if; 

12     end loop fst_loop; 

13       dbms_output.put_line('LOOP循环已经结束!'); 

14  end; 

15  / v_rlt = -3v_rlt = -2v_rlt = -1v_rlt = 0v_rlt = 1v_rlt = 2v_rlt = 3变量的值已经大于3,当前值为4LOOP循环已经结束! PL/SQL procedure successfully completed

2WHILE...LOOP结构
    WHILE...LOOP结构和基本的LOOP语句不同,它本身可以结束LOOP循环。WHILE关键词后面需要有布尔表达式,当WHILE后面的布尔表达式为TRUE时,则循环体重的语句序列被执行1次,然后会重新判断WHILE后面的表达式是否为TRUE,只有当WHILE后的布尔表达式为FALSE时,才结束整个LOOP循环。

    该语句结构的相关语法如下:

[<<label_name>>]WHILE boolean_expressionLOOPstatement...END LOOP [label_name];【语法说明】boolean_expression:布尔表达式。statement:语句序列,当boolean_expressionTRUE时,该语句序列可获得执行权。

    cWHILE...LOOP结构

SQL> --while...loop

SQL> declare  

2    v_rlt number(8):=-3;  

3  begin  

4     <<while_loop>>  

5     while(v_rlt < 4)  

6     loop  

7       dbms_output.put_line('v_rlt = '||v_rlt);  

8       v_rlt:=v_rlt+1;  

9     end loop while_loop; 

10       dbms_output.put_line('WHILE循环已经结束!'); 

11  end; 

12   

13  / v_rlt = -3v_rlt = -2v_rlt = -1v_rlt = 0v_rlt = 1v_rlt = 2v_rlt = 3WHILE循环已经结束! PL/SQL procedure successfully completed

3.FOR...LOOP结构
    FOR...LOOP语句可以遍历某个范围的整数,该范围被FORLOOP关键词封闭。首次进入循环时,循环范围将被确定,并且以后不会再次计算。每循环一次,循环指数将会自动增加1

    FOR...LOOP语句的语法结构如下:

[<<label_name>>]FOR index_name IN[ REVERSE ]lower_bound .. upper_boundLOOPstatement...END LOOP [label_name];【语法说明】index_name:循环计数器,是一个变量,它可以得到当前的循环指数。需要注意的是,不能为其手工赋值。REVERSE:可选项,指定循环方式。默认的循环方式由下标(lower_bound)到上标(upper_bound)。使用该选项则从上标界到下标界。lower_bound:循环范围的下标界。upper_bound:循环范围的上标界。下标和上标之间的".."不能省略。

    dFOR...LOOP结构

SQL> --for..loop

SQL> begin  

2     for v_rlt in -3..3 loop  

3       dbms_output.put_line('v_rlt = '||v_rlt);  

4     end loop;  

5       dbms_output.put_line('FOR循环已经结束!');  

6  end;  

7  / v_rlt = -3v_rlt = -2v_rlt = -1v_rlt = 0v_rlt = 1v_rlt = 2v_rlt = 3FOR循环已经结束! PL/SQL procedure successfully completed

 

<!--EndFragment-->

 

分享到:
评论

相关推荐

    整理:oracle pl/sql 入门+ 数组使用+游标+动态SQL

    Oracle PL/SQL是Oracle数据库系统中的过程式编程语言,它扩展了SQL的功能,使得开发者能够创建复杂的业务逻辑和数据处理程序。在这个“整理:Oracle PL/SQL 入门+数组使用+游标+动态SQL”文档中,我们将深入探讨这四...

    ORACLE PL/SQL从入门到精通

    循环语句是PL/SQL编程中用来重复执行一组语句的结构,包括loop、while、for三种形式,它们各自有不同的使用场景和语法。 分支条件语句在PL/SQL中用来根据不同的条件执行不同的代码分支,主要包括CASE表达式和if-...

    Oracle PL/SQL程序设计(第5版)(上下册)

    ### Oracle PL/SQL程序设计(第5版)(上下册)知识点概述 #### 一、PL/SQL编程基础 - **PL/SQL简介**:PL/SQL(Procedural Language for SQL)是Oracle数据库的一种内嵌式过程化语言,用于增强SQL的功能。它允许在SQL...

    Oracle PL/SQL programming(5th Edition)

    本书是关于Oracle PL/SQL编程的权威指南,被认为是数据库社区中最优秀的Oracle编程书籍之一。第五版涵盖了Oracle Database 11g Release 2的所有新功能,并提供了大量示例代码,包括简单的示例到复杂的完整应用程序。...

    oracle pl/sql实例精讲student数据库模式数据和表脚本

    Oracle PL/SQL是一种强大的编程语言,它结合了SQL的数据库操作能力和Procedural Language的编程结构,用于在Oracle数据库环境中创建复杂的应用程序。在"Oracle PL/SQL实例精讲student数据库模式"中,我们将深入探讨...

    Oracle PL/SQL学习官方教材

    2. **流程控制**:PL/SQL提供了多种流程控制结构,如条件语句(IF-THEN-ELSIF-ELSE)、循环(WHILE、FOR、LOOP)、CASE表达式,以及异常处理(EXCEPTION)。这些结构使得程序可以根据不同条件执行不同的代码段。 3....

    Oracle PL_SQL Language Pocket Reference, 5th Edition.2015.pdf

    - **Steven Feuerstein**:世界领先的Oracle PL/SQL语言专家之一,同时也是《Oracle PL/SQL 最佳实践》一书的作者。 - **Bill Pribyl**:畅销书《Oracle PL/SQL 编程》的合著者,同时他也是一名教师和软件顾问。 - *...

    ORACLE PL/SQL804+中文补丁

    Oracle PL/SQL是一种强大的编程语言,它结合了SQL(结构化查询语言)的数据库操作能力和Procedural Language的控制结构,使得开发人员可以创建复杂的数据库应用程序。"ORACLE PL/SQL 804+中文补丁"是针对Oracle...

    Oracle PL/SQL Programming

    3. **控制流语句**:PL/SQL支持IF-THEN-ELSIF-ELSE、CASE、FOR循环、WHILE循环等控制结构,用于实现条件判断和循环。 4. **游标**:游标允许程序逐行处理查询结果,是数据库操作中常用的一种技术。例如,`FOR rec ...

    PL/SQL入门到精通书的源代码

    PL/SQL是Oracle数据库系统中的过程式语言,它结合了SQL的数据操作能力与结构化编程语句,使得开发者能够创建复杂的数据处理逻辑和业务规则。本资料“PL/SQL入门到精通书的源代码”是一份针对初学者到高级用户的实践...

    pl/sql最新中文手册

    2. **控制流程语句**:这包括条件判断(IF-THEN-ELSIF-ELSE)和循环(WHILE、FOR、LOOP)。这些语句允许根据特定条件执行代码块或重复执行某段代码。 3. **异常处理**:在PL/SQL中,异常处理是通过EXCEPTION关键字...

    oracle 中 pl/sql 只是学习方法

    2. **流程控制**:PL/SQL支持条件语句(IF-THEN-ELSE、CASE)和循环语句(FOR、WHILE、LOOP)。这使得我们能够在处理数据时根据不同的条件执行不同的逻辑。 3. **集合和游标**:集合是PL/SQL中处理多行数据的有效...

    PLSQL考试题目分享.pdf

    1. PL/SQL循环语句:在PL/SQL中,LOOP语句用于实现循环操作,例如,使用FOR循环语句可以实现循环一定次数的操作。在题目1中,使用FOR循环语句来显示2到50的25个偶数。 知识点:PL/SQL循环语句、FOR循环语句 2. PL/...

    Oracle PL/SQL

    一个 PL/SQL 程序通常由多个区块组成,每个区块可以包含变量声明、过程调用、条件语句和循环语句等。一个基本的 PL/SQL 区块结构如下所示: ```sql DECLARE -- 变量声明 BEGIN -- 可执行的语句 EXCEPTION -- ...

    Oracle PL/SQL 帮助文档

    1. **基础概念**:介绍PL/SQL的基本结构,包括声明变量、编写块(BEGIN-END)、流程控制语句(IF, GOTO, LOOP等)和异常处理。 2. **数据类型**:详述Oracle支持的各种数据类型,如NUMBER, VARCHAR2, DATE等,以及...

    ORACLE8 PLSQL程序设计_sql_code.zip_oracle pl/sql_pl sql code_pl/sql_

    8. **EXAMP**: 06-EXAMP.SQL、10-EXAMP.SQL以及04-LOOP.SQL可能包含各种PL/SQL编程示例,如控制结构(如循环、条件语句)、异常处理和数据类型使用等。 9. **LOOP**: 04-LOOP.SQL专门涉及PL/SQL中的循环结构,包括...

    oracle pl/sql入门教程

    Oracle PL/SQL是一种强大的编程语言,它结合了SQL的数据库查询功能和PL的程序设计特性,为Oracle数据库的开发提供了一种高效、灵活的方式。本入门教程旨在帮助初学者快速理解并掌握Oracle PL/SQL的基础知识,通过...

    pl/sql及常见实用oracle语句学习

    Oracle数据库是世界上最广泛使用的数据库系统之一,而PL/SQL则是Oracle特有的编程语言,用于处理数据库中的数据。在本文中,我们将深入探讨PL/SQL以及Oracle数据库中的一些常见实用语句。 PL/SQL全称为Procedural ...

    oracle sql and pl/sql

    - **执行部分**:包含 PL/SQL 控制结构(如 IF、CASE、LOOP 等)以及 SQL 语句。 - **异常处理部分**:处理运行时可能发生的错误。 5. **高级特性**: - **游标(Cursors)**:用于处理查询结果集。 - **事务...

    how-to-unwrap-pl-sql.zip_oracle pl/sql ppt

    - 执行部分包含SQL语句和PL/SQL控制流语句,如IF、LOOP、WHILE等。 - 异常处理部分用于捕获和处理程序运行时的错误。 2. **理解PL/SQL块**: - PL/SQL代码以BEGIN...END语句块的形式存在,可以是匿名块(即在SQL...

Global site tag (gtag.js) - Google Analytics