• 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   
    */  
  • 相关阅读:
    day3-课堂笔记
    day2-作业及答案
    2016年11月19日一周工作知识点总结
    2016年11月19日一周工作知识点总结
    使用JDK开发WebService
    使用JDK开发WebService
    Java WebService 简单实例
    Java WebService 简单实例
    BigDecimal不整除的一个异常java.lang.ArithmeticException
    2016年11月13日周工作知识点总结
  • 原文地址:https://www.cnblogs.com/MrLiu2016/p/7650494.html
Copyright © 2020-2023  润新知