一.loop循环

语法:
声明循环变量
loop
判断循环条件 ,如果循环条件不成立,跳出循环
if 条件表达式 then
exit;
end if;
语句块;
改变循环变量的值
end loop;

举例:输出1到100以内的自然数

  1. declare
  2. -- 声明循环变量
  3. v_i number(8):=1;
  4. begin
  5. loop
  6. -- 判断循环条件,条件成立,跳出循环
  7. if v_i>100 then
  8. exit;
  9. end if;
  10. -- 输出1100以内的自然数
  11. dbms_output.put_line(v_i);
  12. -- 改变循环变量的值
  13. v_i:=v_i+1;
  14. end loop;
  15. end;

举例:输出部门表的所有内容
into只能用一个或者一行的方式赋值,我们可以用bulk collect into来给行类型变量整体赋值,也就是说可以一次性
把所有数据查询出来,为table类型的变量赋值。

  1. declare
  2. -- 声明table类型
  3. type dept_table_type is table of dept%rowtype
  4. index by binary_integer;
  5. -- 声明table类型的变量,用来存储部门表的所有数据
  6. v_dept dept_table_type;
  7. -- 声明循环变量
  8. v_i number(8):=1;
  9. begin
  10. -- 查询所有部门表的内容,放到v_dept变量中
  11. select * bulk collect into v_dept from dept;
  12. -- 循环除数v_dept变量中的值
  13. loop
  14. -- 判断循环条件
  15. if v_i>v_dept.count then
  16. exit;
  17. end if;
  18. dbms_output.put_line('部门编号:'||v_dept(v_i).deptno||',部门名称:'||v_dept(v_i).dname
  19. ||'部门位置:'||v_dept(v_i).loc);
  20. -- 改变循环变量的值
  21. v_i:=v_i+1;
  22. end loop;
  23. end;

二.while循环

语法:
声明循环变量,给循环变量赋初始值
while 条件表达式
loop
语句块;
改变循环变量的值
end loop;

举例:输出1到100以内的自然数

  1. declare
  2. -- 声明循环变量
  3. v_i number(8):=1;
  4. v_str varchar2(1000):='';
  5. begin
  6. --如果条件成立,执行循环
  7. while v_i<=100
  8. loop
  9. v_str:=v_str||v_i||' ';
  10. -- 改变循环变量的值
  11. v_i:=v_i+1;
  12. end loop;
  13. dbms_output.put_line(v_str);
  14. end;

三.for循环

语法:
for 循环变量 in 循环变量的开始值..循环变量的结束值
loop
语句块;
end loop;
注意:for循环,循环变量可以直接使用,不用声明。in 包含循环变量的开始值和结束值
举例:输出1到100以内的自然数

  1. begin
  2. -- 循环变量不用声明
  3. for v_i in 1..100
  4. loop
  5. dbms_output.put_line(v_i);
  6. end loop;
  7. end;

举例:输出部门表的所有内容

  1. declare
  2. -- 声明table类型
  3. type dept_table_type is table of dept%rowtype
  4. index by binary_integer;
  5. -- 声明table类型的变量,用来存储部门表的所有数据
  6. v_dept dept_table_type;
  7. begin
  8. -- 查询所有部门表的内容,放到v_dept变量中
  9. select * bulk collect into v_dept from dept;
  10. -- 循环除数v_dept变量中的值
  11. for v_i in v_dept.first..v_dept.last
  12. loop
  13. dbms_output.put_line('部门编号:'||v_dept(v_i).deptno||',部门名称:'||v_dept(v_i).dname
  14. ||'部门位置:'||v_dept(v_i).loc);
  15. end loop;
  16. end;

Oracle的三种循环的更多相关文章

  1. Oracle中三种循环(For、While、Loop)

    1.ORACLE中的GOTO用法 DECLARE x number; BEGIN x := 9; <<repeat_loop>> --循环点 x := x - 1; DBMS_ ...

  2. Oracle中三种循环(For、While、Loop)案例

    1.ORACLE中的FOR循环用法(九九乘法表) declare i ; j ; begin .. loop ..i loop Dbms_Output.put(i||'*'||j||'='||i*j) ...

  3. Oracle三种循环例题:打印九九乘法表

    数据库SQL三种循环语句(For.While.Loop) --如果要将执行结果输出,需要先执行 setserveroutput on 命令,在窗口里显示服务器输出信息 set serveroutput ...

  4. Java语言----三种循环语句的区别

    ------- android培训.java培训.期待与您交流! ---------- 第一种:for循环 循环结构for语句的格式:       for(初始化表达式;条件表达式;循环后的操作表达式 ...

  5. 【Java学习笔记之六】java三种循环(for,while,do......while)的使用方法及区别

    第一种:for循环 循环结构for语句的格式:       for(初始化表达式;条件表达式;循环后的操作表达式) { 循环体;    } eg: class Dome_For2{ public st ...

  6. switch语句以及三种循环语句的总结

    1:switch语句(1)格式:switch(表达式) {case 值1:语句体1;break;case 值2:语句体2;break;...default:语句体n+1;break;} 格式解释说明: ...

  7. JS中的三种循环

    三种循环1.while 2.do while 3.for 1.while: 语法结构:while(条件){代码块:改变条件} 步骤:1.初始化变量   2.判断条件  3.执行代码块  4.改变初始条 ...

  8. java 三种循环及注意事项

    package debug; public class Demo8 { public static void main(String[] args) { //采用for循环打印10次Java好 for ...

  9. Oracle数据库三种备份方案

    Oracle数据库有三种标准的备份方法,它们分别是导出/导入(EXP/IMP).热备份和冷备份.导出备件是一种逻辑备份,冷备份和热备份是物理备份. 一. 导出/导入(Export/Import) 利用 ...

随机推荐

  1. 路径跟踪 PathMeasure的简单使用

    平时用path画一些简单的几何图形,呈现的时候也是已经绘制好的图形,想想,如果像动画一样看到它的绘制轨迹,是不是更酷?今天介绍的这个类PathMeasure就是干这个的,知道它的存在还是由于看了启舰写 ...

  2. Java中常用的七个阻塞队列介绍第一篇

    Java中常用的七个阻塞队列介绍第一篇 在上一篇我们对Java中的队列分类做了简单的介绍.本文咱们主要来聊聊阻塞队列中的七个常用子类.这七个阻塞队列的学习步骤:先看源码,分析完源码之后,我们再来对每个 ...

  3. 高德APP启动耗时剖析与优化实践(iOS篇)

    前言最近高德地图APP完成了一次启动优化专项,超预期将双端启动的耗时都降低了65%以上,iOS在iPhone7上速度达到了400毫秒以内.就像产品们用后说的,快到不习惯.算一下每天为用户省下的时间,还 ...

  4. lua使用笔记1:Linux 中安装lua

    1.lua安装 1)http://www.lua.org/download.html为下载页面 linux中运行 wget http://www.lua.org/ftp/lua-5.2.3.tar.g ...

  5. 基于canvas的画板

    最近重新在看Html5&CSS3的知识,看到canvas的时候,想到了以前在学校学计算机图形学时做过的画图实验,于是想,可以基于html5和css3来做一款画板,经过1天的努力,完成了画板的一 ...

  6. 4. css事件

    可通过使用css伪类实现点击元素变色的效果,两个伪类是:active, :focus :active :active选择器用于选择活动链接.当在一个链接上点击时,它就会成为活动的(激活的),:acti ...

  7. redis: Hash集合类型(六)

    存值:hset myhash name applesnt 取值:hget myhash name 批量存值:hmset myhash name lisi address bj age 12 批量取值: ...

  8. 用 Python 黄图批量鉴别审核

    前言 最近写了一款微信小程序需要用到图片审核,人工审核是不可能的人工审核的太费精力了,所以我就写了一个多线程批量识别脚本来处理,主要是调用百度AI的接口,这里我是付费了也不贵审核一条1分钱不到,再说我 ...

  9. spark2.4.5计算框架中各模块的常用实例

    本项目是使用scala语言给出了spark2.4.5计算框架中各模块的常用实例. 温馨提醒:spark的版本与scala的版本号有严格的对应关系,安装请注意. Spark Core RDD以及Pair ...

  10. 安装 wbemcli

    安装环境        建立自己的目录后,             wget http://vault.centos.org/6.0/os/x86_64/Packages/sblim-wbemcli- ...