一:LOOP...END LOOP
先看代码

declare
v_flag number := 1;
begin
loop exit when v_flag>16;v_flag := v_flag+1;dbms_output.put_line(to_char(v_flag));
end loop;
end;

其中exit when是跳出循环的条件,
注意代码中的分号,挺重要的。没有分号会报错

二:while……loop….end loop
几个和循环结构相关的代码,我比较喜欢这个,如下:

declare
v_flag number := 1;
begin
while v_flag<16 loopv_flag := v_flag+1;dbms_output.put_line(to_char(v_flag));
end loop;
end;

注意这个示例程序和上个示例程序的输出结果是不同的
具体为什么不同我就不多解释了

三:for…loop…end loop
还是类似的示例程序:

declare
v_flag number := 1;
begin
for v_flag in 2..16 loop--v_flag := v_flag+1;dbms_output.put_line(to_char(v_flag));
end loop;
end;

注意我用--注释掉了一句
因为在这个循环体内,是不允许为哨兵变量赋值的
哨兵变量不知道啥意思?hehe
--是注释单行的写法
/*  …..*/可以注释多行

四:顺序控制goto
看例子:

declare
v_flag number := 1;
begin
while v_flag<16 loopv_flag := v_flag+1;dbms_output.put_line(to_char(v_flag));if mod(v_flag,6) = 0 thengoto lable_1;end if;
end loop;
<<lable_1>>
dbms_output.put_line('跳出来了');
end;

mod(v,n)是取余数的意思,
这里写这个函数其实没意义
还不如直接判断变量是否等六
另外需要注意的是goto语句有很多限制
以下都是不被允许的:
1跳转到非执行语句前面
2跳转到子块中
3跳转到条件语句中
4跳转到循环语句中
5从条件语句的一部分跳转到另一部分
6从异常处理部分跳转到执行部分

转载于:https://www.cnblogs.com/liulun/archive/2009/07/19/1526589.html

PL/SQL学习笔记-循环控制与顺序控制相关推荐

  1. 判断题:oracle自带的sql语言环境是pl/sql,Oracle之PL/SQL学习笔记之数据类型(三)

    Oracle之PL/SQL学习笔记之数据类型(三) 所有的编程语言中变量是使用最频繁的.PL/SQL作为一个面向过程的数据库编程语言同样少不了变量,利用变量可以把PL/SQL块需要的参数传递进来,做到 ...

  2. Oracle之PL/SQL学习笔记之有名块练习

    2019独角兽企业重金招聘Python工程师标准>>> Oracle之PL/SQL学习笔记之有名块练习 存储过程案例: 案例1: 根据雇员姓名跟新雇员工资,如果雇员不存在输出没有该雇 ...

  3. PL/SQL学习笔记-常量变量及数据类型初步

    一:常量和变量 开始之前,还是照例做个经典的例子,如下: declare mydate varchar2(16) := 'hellow world'; begindbms_output.put_lin ...

  4. PL/SQL学习笔记(四)

    这部分主要讲述在PL/SQL中如何访问oracle (一)检索单行数据 在PL/SQL嵌入select语句,使用方法: SELECT select_list INTO variable_name1,v ...

  5. PL/SQL学习笔记(二)

    定义并使用变量 PL/SQL有四种类型:标量类型,复合类型,引用类型(reference),LOB(Large Obejct)类型 一.标量类型 最常用的就是标量类型,是指只能存放单个数值的变量,包括 ...

  6. PL/SQL学习笔记之存储过程

    一:PL/SQL的两种子程序 子程序:子程序是执行一个特定功能.任务的程序模块.PL/SQL中有两种子程序:函数  和  过程. 函数:主要用于计算并返回一个值. 过程:没有直接返回值,主要用于执行操 ...

  7. PL/SQL学习笔记(二)—— 执行语句

    一.语法 execute immediate SQL语句/PLSQL代码块 into 变量 [using 参数1,参数2,--]: using后面的参数要与into后面的变量及变量的数据类型对应起来 ...

  8. PL/SQL学习笔记-过程

    一:创建和修改一个过程 create or replace procedure xland_proc (v_title in varchar2,v_int out number) is v_char ...

  9. oracle pl sql示例,oracle PL SQL学习案例(一)

    oracle PL SQL学习案例(一) [示例1.1]  查询雇员编号为7788的雇员姓名和工资. 步骤1:用SCOTT/TIGER账户登录SQL*Plus. 步骤2:在输入区输入以下程序: /*这 ...

最新文章

  1. wireshark从入门到精通(协议排错安全篇)7
  2. 描述一下Spring框架的作用和优点?
  3. Scala中任意表达式都是有返回值的(具体返回结果的值取决于满足条件的代码体的最后一行内容)
  4. 第一次作业:深入Linux源码分析进程模型
  5. python 类初始化参数校验_如何规避python参数的初始化次数?
  6. java九种数据类型以及封装类
  7. java getid_Java TimeZone getID()方法与示例
  8. 【flink】flink 复杂事件处理 CEP
  9. linux中python进程,如何检查进程在python中运行(在linux中)?
  10. 如何做好手机APP测试?APP测试流程及解决方案
  11. 解决Unity物体速度过快无法进行碰撞检测(碰撞检测穿透)
  12. pixhawk飞控板的硬件构成
  13. 牛客观察 | 大厂疯狂招人背后: 中小企业要躺平“捡漏”吗?
  14. mysql use temporary_一次mysql 优化 (Using temporary ; Using filesort)
  15. windows远程桌面,停留在“请稍后”页面
  16. 关于c3p0报错:An attempt by a client to checkout a Connection has timed out
  17. S32K144EVB快速入门
  18. (转)Unity 5.6 光照烘焙系统介绍
  19. 消除Xcode iOS项目的警告
  20. acm寒假特辑1月20日 CodeForces - 82A

热门文章

  1. ORACLE强大的令人发指
  2. 【基础大全】一文带你打好网工路由基础......
  3. 【教程】Linux下MySQL 8.0安装配置
  4. MySQL通过两表避免回表_mysql利用覆盖索引避免回表优化查询
  5. Thoughtworks 正式成为阿里云云原生核心合作伙伴
  6. Deeplearning:windows多版本cuda安装、管理
  7. C++:搭建深度学习环境及实战
  8. 【通知】3月第二周直播预告,模型优化,人脸识别,图像增强核心技术与难题...
  9. 【每周论文推荐】 初入深度学习CV领域必读的几篇文章
  10. 回顾2018,计划2019