博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(转)Oracle中For和while及一些应用
阅读量:6800 次
发布时间:2019-06-26

本文共 2460 字,大约阅读时间需要 8 分钟。

 
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;
你可能感兴趣的文章
在Windows环境中使用版本管理工具Git(2)
查看>>
Android开发五 Android应用程序架构
查看>>
【发布】弹性分页类PagingBuild Class 附带测试
查看>>
适用于单选的jQuery Auto-complete插件SelectToAutocomplete
查看>>
html5 手机页面
查看>>
Ubuntu 配置VNC以及使用VNC连接时,无法显示系统菜单栏,解决方法
查看>>
用avalon实现一个完整的todomvc(带router)
查看>>
特征的转换规则 Transfer Routione
查看>>
秒杀多线程第四篇 一个经典的多线程同步问题
查看>>
一款基于css3鼠标经过圆形旋转特效
查看>>
用CIL写程序:从“call vs callvirt”看方法调用
查看>>
远程连接mysql数据库提示:ERROR 1130的解决办法
查看>>
值传递、指针传递、引用传递的区别
查看>>
无法解析的外部符号 _WinMain@16 fatal error LNK1120: 1 个无法解析的外部命令
查看>>
linux 内核代码构架图
查看>>
JDBC的基本用法
查看>>
一个关于1到100之间和与积的数学题
查看>>
51 Nod 1057 N的阶乘【Java大数乱搞】
查看>>
Cocos2d-X中的ZORDER和Tag
查看>>
【git】git pull
查看>>