PL/SQL学习笔记-循环控制与顺序控制
一: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学习笔记-循环控制与顺序控制相关推荐
- 判断题:oracle自带的sql语言环境是pl/sql,Oracle之PL/SQL学习笔记之数据类型(三)
Oracle之PL/SQL学习笔记之数据类型(三) 所有的编程语言中变量是使用最频繁的.PL/SQL作为一个面向过程的数据库编程语言同样少不了变量,利用变量可以把PL/SQL块需要的参数传递进来,做到 ...
- Oracle之PL/SQL学习笔记之有名块练习
2019独角兽企业重金招聘Python工程师标准>>> Oracle之PL/SQL学习笔记之有名块练习 存储过程案例: 案例1: 根据雇员姓名跟新雇员工资,如果雇员不存在输出没有该雇 ...
- PL/SQL学习笔记-常量变量及数据类型初步
一:常量和变量 开始之前,还是照例做个经典的例子,如下: declare mydate varchar2(16) := 'hellow world'; begindbms_output.put_lin ...
- PL/SQL学习笔记(四)
这部分主要讲述在PL/SQL中如何访问oracle (一)检索单行数据 在PL/SQL嵌入select语句,使用方法: SELECT select_list INTO variable_name1,v ...
- PL/SQL学习笔记(二)
定义并使用变量 PL/SQL有四种类型:标量类型,复合类型,引用类型(reference),LOB(Large Obejct)类型 一.标量类型 最常用的就是标量类型,是指只能存放单个数值的变量,包括 ...
- PL/SQL学习笔记之存储过程
一:PL/SQL的两种子程序 子程序:子程序是执行一个特定功能.任务的程序模块.PL/SQL中有两种子程序:函数 和 过程. 函数:主要用于计算并返回一个值. 过程:没有直接返回值,主要用于执行操 ...
- PL/SQL学习笔记(二)—— 执行语句
一.语法 execute immediate SQL语句/PLSQL代码块 into 变量 [using 参数1,参数2,--]: using后面的参数要与into后面的变量及变量的数据类型对应起来 ...
- PL/SQL学习笔记-过程
一:创建和修改一个过程 create or replace procedure xland_proc (v_title in varchar2,v_int out number) is v_char ...
- oracle pl sql示例,oracle PL SQL学习案例(一)
oracle PL SQL学习案例(一) [示例1.1] 查询雇员编号为7788的雇员姓名和工资. 步骤1:用SCOTT/TIGER账户登录SQL*Plus. 步骤2:在输入区输入以下程序: /*这 ...
最新文章
- wireshark从入门到精通(协议排错安全篇)7
- 描述一下Spring框架的作用和优点?
- Scala中任意表达式都是有返回值的(具体返回结果的值取决于满足条件的代码体的最后一行内容)
- 第一次作业:深入Linux源码分析进程模型
- python 类初始化参数校验_如何规避python参数的初始化次数?
- java九种数据类型以及封装类
- java getid_Java TimeZone getID()方法与示例
- 【flink】flink 复杂事件处理 CEP
- linux中python进程,如何检查进程在python中运行(在linux中)?
- 如何做好手机APP测试?APP测试流程及解决方案
- 解决Unity物体速度过快无法进行碰撞检测(碰撞检测穿透)
- pixhawk飞控板的硬件构成
- 牛客观察 | 大厂疯狂招人背后: 中小企业要躺平“捡漏”吗?
- mysql use temporary_一次mysql 优化 (Using temporary ; Using filesort)
- windows远程桌面,停留在“请稍后”页面
- 关于c3p0报错:An attempt by a client to checkout a Connection has timed out
- S32K144EVB快速入门
- (转)Unity 5.6 光照烘焙系统介绍
- 消除Xcode iOS项目的警告
- acm寒假特辑1月20日 CodeForces - 82A
热门文章
- ORACLE强大的令人发指
- 【基础大全】一文带你打好网工路由基础......
- 【教程】Linux下MySQL 8.0安装配置
- MySQL通过两表避免回表_mysql利用覆盖索引避免回表优化查询
- Thoughtworks 正式成为阿里云云原生核心合作伙伴
- Deeplearning:windows多版本cuda安装、管理
- C++:搭建深度学习环境及实战
- 【通知】3月第二周直播预告,模型优化,人脸识别,图像增强核心技术与难题...
- 【每周论文推荐】 初入深度学习CV领域必读的几篇文章
- 回顾2018,计划2019