zoukankan      html  css  js  c++  java
  • Oracle的三种循环

    一.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;
  • 相关阅读:
    移动端web页面使用position:fixed问题
    登录的一些心得
    响应式网页设计
    xss(跨站脚本攻击),crsf(跨站请求伪造),xssf
    HTML5 离线功能介绍
    webapp开发经验和资料
    学习Java,值得你留意的问题(1)更名为《学习Java,容易被你忽略的小细节(1)》
    Python下搜索文件
    从百度地图API接口批量获取地点的经纬度
    获取代理IP地址(BeautifulSoup)
  • 原文地址:https://www.cnblogs.com/duguangming/p/10840787.html
Copyright © 2011-2022 走看看