zoukankan      html  css  js  c++  java
  • oracle的loop等循环语句的几个用法小例子

    --loop循环用法 (输出1到10)
    declare v_num number(2) := 0;
    begin 
      loop
        v_num := v_num + 1;
        exit when v_num > 10;
        --上面退出循环也可以用下面3行
         /* if(v_num > 9) then
            exit;
         end if;*/
        dbms_output.put_line(v_num); 
      end loop;  
    end;
    
    --while loop循环用法 (输出1到10)
    declare v_num number(2) := 0;
    begin 
      while v_num < 10 loop
         v_num := v_num + 1;
         dbms_output.put_line(v_num);
      end loop;  
    end;
    
    --for loop循环用法1 (输出1到10)
    declare v_num number(2) := 99;
    begin
      for v_n in 1 .. v_num loop    
         exit when v_n > 10;
         dbms_output.put_line(v_n);
      end loop;
    end;
    
    --for loop循环用法2 (输出某个表的序号、列数据)
    begin
       for v_n in(select amount,rownum from tmp) loop 
          dbms_output.put_line(v_n.rownum || ' , ' || v_n.amount);
       end loop;
    end;
    
    
    ---个循环打印某个月日历例子
    declare v_days number(2); 
            v_firstday number(2);
            v_result varchar2(4000);
            v_d varchar(100);
            v_month date;
    begin
       v_month := to_date('20170301','yyyymmdd');
       v_result := to_char(v_month,'yyyy') || '年' || to_char(v_month,'mm') || '月' || chr(10) ||  '日 一 二 三 四 五 六' || chr(10);
       select to_char(last_day(v_month), 'dd') into v_days from dual;--当月多少天
       select to_char(trunc(v_month, 'mm'),'d') into v_firstday from dual;--当月第1天是星期几:1-7    
       --1号所在星期几的之前每一天补3个空格
       for v_week in 1 .. v_firstday - 1  loop
          exit when v_firstday < 2;
          v_result := v_result || '   ';      
       end loop;
       for v_date in 1 .. v_days loop
          v_d := v_date;
          if(length(v_date) = 1) then
             v_d :=  ' '||v_date ;                
          end if;
          v_result := v_result || v_d || ' ';     
          if(mod(v_date + v_firstday, 7) = 1) then
              v_result := v_result || ' ' || chr(10);       
          end if;
       end loop;  
       dbms_output.put_line(v_result);
    end;
    /*
    运行结果:
    
    2017年03月
    日 一 二 三 四 五 六
              1  2  3  4  
     5  6  7  8  9 10 11  
    12 13 14 15 16 17 18  
    19 20 21 22 23 24 25  
    26 27 28 29 30 31 
    */
    

      

  • 相关阅读:
    IOS触摸事件
    IOS中内存管理机制浅解
    Info.plist与Prefix.pch修改文件位置遇到的问题及解决方法
    block使用小结、在arc中使用block、如何防止循环引用
    __block的作用
    ios中键值编码kvc和键值监听kvo的特性及详解
    ios多线程开发的常用三种方式
    Xcode7连接网络设置
    不能弹出虚拟键盘的解决办法
    【测试工具】moco入门(一)
  • 原文地址:https://www.cnblogs.com/gdjlc/p/6588646.html
Copyright © 2011-2022 走看看