一.loop循环

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

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

declare
-- 声明循环变量
v_i number(8):=1;
begin
loop
-- 判断循环条件,条件成立,跳出循环
if v_i>100 then
exit;
end if;
-- 输出1到100以内的自然数
dbms_output.put_line(v_i);
-- 改变循环变量的值
v_i:=v_i+1;
end loop;
end;

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

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

二.while循环

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

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

declare
-- 声明循环变量
v_i number(8):=1;
v_str varchar2(1000):='';
begin
--如果条件成立,执行循环
while v_i<=100
loop
v_str:=v_str||v_i||' ';
-- 改变循环变量的值
v_i:=v_i+1;
end loop;
dbms_output.put_line(v_str);
end;

三.for循环

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

begin
-- 循环变量不用声明
for v_i in 1..100
loop
dbms_output.put_line(v_i);
end loop;
end;

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

declare
-- 声明table类型
type dept_table_type is table of dept%rowtype
index by binary_integer;
-- 声明table类型的变量,用来存储部门表的所有数据
v_dept dept_table_type;
begin
-- 查询所有部门表的内容,放到v_dept变量中
select * bulk collect into v_dept from dept;
-- 循环除数v_dept变量中的值
for v_i in v_dept.first..v_dept.last
loop
dbms_output.put_line('部门编号:'||v_dept(v_i).deptno||',部门名称:'||v_dept(v_i).dname
||'部门位置:'||v_dept(v_i).loc);
end loop;
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. bat批处理文件搞定所有系统问题

     bat批处理文件搞定所有系统问题  分类: WINDOWS   -----------bat批处理文件搞定所有系统问题---------   一.查漏补缺——给系统功能添把火  我们的操作系统虽然功 ...

  2. 使用ffprobe 查询wav文件信息

    使用ffprobe 查询wav文件信息 安装 安装过程和ffmepg相同不在赘述 不带参数查询文件信息 ffprobe ZH_biaobei_标准合成_甜美女声_楠楠_5_5_5_6_1_4047db ...

  3. Redis linux 下安装

    Redis linux 下安装 下载Redis安装包,可以从Redis中文网站中下载 下载地址:http://www.redis.cn/download.html Redis4.0 稳定版本 使用&l ...

  4. 3d模型一般怎么导入到到Threejs中使用

    这是我之前做的一个demo,导入的3d模型文件是obj格式的,需要使用OBJLoader和MTLLoader, mtl文件用于描述多边形可视面貌的材质如果你可以导出obj.mtl文件的话,那么就可以使 ...

  5. layui.laytpl 模板引擎用法

    目录 layui下载地址: 最终效果: 模板引擎文档 手册地址: 以下是代码思路: layui下载地址: https://www.layui.com/ 最终效果: 模板引擎文档 手册地址: https ...

  6. 处理数字的类 —— Math类 、 Random类 、 BigDecimal类 与 BigInteger类

    在我们学习C语言时,我们处理数据时要调用很多函数,那么,Java也有很多的方法可以来处理数值的类. 那么,在本篇博文中,本人就来讲解三个用于处理数值的类 -- Math类 . Random类 与 Bi ...

  7. Redis入门使用 -- 个人总结

    目录 什么是Redis? Redis 与其他 key - value 数据库的对比 Redis 能干什么 Redis的安装配置 Redis启动和连接 上面开启的是非守护线程下启动(独占模式),下面我们 ...

  8. ASP.NET Core技术研究-全面认识Web服务器Kestrel

    因为IIS不支持跨平台的原因,我们在升级到ASP.NET Core后,会接触到一个新的Web服务器Kestrel.相信大家刚接触这个Kestrel时,会有各种各样的疑问. 今天我们全面认识一下ASP. ...

  9. 从零开始的计算机网络基础(图文并茂,1.8w字,面试复习必备)

    前言 在互联网高速发展的今天,我们通过手机,电脑等通讯设备可以很轻松达到未出茅庐便知天下事的境界.每天我们都要访问数不胜数的网站,通过打开浏览器,输入网址两步搞定.当然更为常规的做法是打开浏览器,设置 ...

  10. 如何使用IE9浏览器自带开发人员工具捕获网页请求

    我们在通过浏览器访问一个网页的时候,有时候会遇到页面不能正常显示,图片不能正常加载的问题. 如果我们需要知道浏览器打开该网页时,网页中每个元素的加载情况.这时,我们便可以借助浏览器自带开发人员工具,来 ...