)Oracle中For和while及一些應用

來源:互聯網
上載者:User
  • Oracle中的for和while迴圈 
  •  
  • 有兩種方式可以實現條件迴圈 
  •  
  • 一、for 變數 in 開始數值...結束數值 loop     end loop; 
  • 二、while 條件 loop       end loop; 
  •  
  • loop的使用方式: 
  •  
  • exit when 語句可以出現在迴圈代碼中的任何位置; 
  •  
  • for迴圈: 
  •  
  •  
  • begin 
  •     for x in reverse 1..10 loop -- reverse大到小 
  •         DBMS_OUTPUT.PUT_LINE('內:x='||x); 
  •     end loop; 
  •      
  •     DBMS_OUTPUT.PUT_LINE('endget'); 
  • end;  
  •  
  •   
  •  
  • 如以下兩個例: 
  • /*
  • 功能描述:計算計算出1到100的和
  • t的值為和
  • */ 
  • 1) 
  • Create Or Replace Procedure Count_Number Is 
  •   i Number(10); 
  •   t Number(10); 
  • Begin 
  •   i := 1; 
  •   t := 0; 
  •   Loop 
  •     i:=i+1; 
  •     ---exit when i=100; 
  •     exit when i>100; 
  •     t:=t+i; 
  •     Dbms_Output.Put_Line('it''s :' || t); 
  •     end loop; 
  •     ---Dbms_Output.Put_Line('it''s :' || t); 
  • End Count_Number; 
  •  
  • 2) 
  • Create Or Replace Procedure Count_Number Is 
  •   i Number(10); 
  •   t Number(10); 
  • Begin 
  •   i := 1; 
  •   t := 0; 
  •   Loop 
  •     i:=i+1; 
  •     if i=100 then 
  •     exit; 
  •     end if ; 
  •     t:=t+i; 
  •     Dbms_Output.Put_Line('it''s :' || t); 
  •     end loop; 
  •     ---Dbms_Output.Put_Line('it''s :' || t); 
  • End Count_Number; 
  • 註:以上的結論都是一樣的 ! 
  •  
  •   
  •  
  • 以下是一個非常簡單的過程,用來熟悉迴圈的! 
  •  
  • 1)使用while ....loop ....end loop ; 
  • Create Or Replace Procedure Count_Number Is 
  •   i Number(10); 
  •   t Number(10); 
  • Begin 
  •   i := 1; 
  •   t := 0; 
  •   while i<=100 loop  
  •   t:=t+i; 
  •   i:=i+1; 
  •   Dbms_Output.Put_Line('it''s :' || t); 
  •   end loop; 
  •     ---Dbms_Output.Put_Line('it''s :' || t); 
  • End Count_Number; 
  •  
  • 2)用for實現:for i in 1..l00 loop ....end loop ; 
  •  
  • Create Or Replace Procedure Count_Number Is 
  •   i Number(10); 
  •   t Number(10); 
  • Begin 
  • --- i := 1; 
  •   t := 0; 
  •   for i in 1..100 loop  
  •   t:=t+i; 
  •   Dbms_Output.Put_Line('it''s :' || t); 
  •   end loop; 
  •     ---Dbms_Output.Put_Line('it''s :' || t); 
  • End Count_Number; 
  •  
  •  
  • for迴圈: 
  • [PL/SQL] 用For Loop 替代Cursor 
  • http://www.itwenzhai.com/data/2006/0523/article_9377.htm   
  • http://blog.csdn.net/heyday/archive/2005/07/27/435804.aspx  
  •  
  • CURSOR FOR Loop 
  •      FOR employee_rec in c1 ---employee_rec直接用,不用提前定義 
  •      LOOP 
  •      total_val := total_val + employee_rec.monthly_income; 
  •      END LOOP; 
  •      當使用CURSOR FOR Loop時,不用我手工open cursor close cursor 
  • 應用: 
  • begin 
  •          FOR emm IN ( SELECT ro_site, ns_site, product_line, wh_type 
  •                       FROM eis_hq_invhl_mail_data 
  •                      WHERE report_type = 'Detailed' ) 
  •         LOOP 
  •         DBMS_OUTPUT.put_line( emm.product_line ); 
  •             eis_hq_invhl_pkg.make_mail_detailed_data 
  •                                         ( p_ro_site =>            emm.ro_site, 
  •                                           p_ns_site =>            emm.ns_site, 
  •                                           p_product_line =>       emm.product_line, 
  •                                           p_wh_type =>            emm.wh_type, 
  •                                           p_current_day =>        to_date('2005-11-07','yyyy-MM-dd') ); 
  •         END LOOP; 
  • end; 
  • 預存程序DIY2----遊標與迴圈 
  • http://blog.csdn.net/brave1/archive/2005/06/08/390160.aspx   
  •  
  • while迴圈: 
  • WHILE( i <= CEIL( LENGTH( p_clob_data ) / 4000 )) 
  •     LOOP 
  •         v_clob_data := TRIM( SUBSTR( p_clob_data, 
  •                                      i * 4000, 
  •                                      4000 )); 
  •         DBMS_OUTPUT.put_line( SUBSTR( v_clob_data, 
  •                                       0, 
  •                                       255 )); 
  •         
  •         i := i + 1;
  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.