zoukankan      html  css  js  c++  java
  • oracle的loop

    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 */

    oracle的双重for循环

        create or replace procedure test_procedure is  
          --a表游标定义  
          cursor a_cursor is  
          select substr(mc,0,2) as str ,mc as mcs   from t_bz_zd_xzqh_jc;  
          --b表游标定义  
          cursor b_cursor(str1 string) is  
            SELECT bm FROM t_bz_zd_xzqh where mc like  '%' || str1 || '%'; -- instr(mc, str1) > 0;  
        begin  
          for a_cur in a_cursor loop  
            for b_cur in b_cursor(a_cur.str) loop  
              --这里是你要执行的操作,比如insert到c  
              --insert into c values (b_cur.id);  
              update t_bz_zd_xzqh_jc set bh= b_cur.bm where mc = a_cur.mcs ;  
              commit;  
            end loop;  
          end loop;  
            
          end;  
  • 相关阅读:
    南阳97
    南阳96
    南阳94
    南阳77
    南阳75
    南阳74
    南阳65
    一般图匹配
    466E
    hdu5057 分块处理,当数值大于数据范围时树状数组 真是巧 将大数据分为小数据来处理
  • 原文地址:https://www.cnblogs.com/520future/p/8822229.html
Copyright © 2011-2022 走看看