欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

oracle 循环的有关问题,请指点

更新时间: 2014-01-05 02:14:42 责任编辑: Author_N1

 

ORACLE 循环的问题,请指点。
create or replace procedure pro_js9295(MSG Out Varchar2) Is
    ln_months Number; 
Begin
  ln_months := '0';
  For t In (select * from table t Where t.year<='1995')Loop
    While (ln_months < t.months) Loop
      Insert Into js9295(year,month)
      Values (t.year,(13-ln_months));
      ln_months := ln_months+1;
       Commit;
      End Loop;
     End Loop;  
End pro_js9295;
--过程编译没有问题。
目的是想把表中的数据按照月数拆分条数。例如如果表中月数months为10,则拆成
3条。
事实上,我大循环的语句select * from table t Where t.year<='1995' 取到的条数是4条。
如果分别是3,4,5,6个月数。那么结果应该拆成3+4+5+6条。
可处理结果只取到大循环的一条数据。。貌似也是随机取到的。
很纳闷啊。求指点。。
--参考方法--
create or replace procedure pro_js9295(MSG Out Varchar2) Is
     ln_months Number; 
 Begin
   ln_months := '0';
   For t In (select * from table t Where t.year<='1995')Loop
     While (ln_months < t.months) Loop
       Insert Into js9295(year,month)
       Values (t.year,(13-ln_months));
       ln_months := ln_months+1;
        Commit;
       End Loop;
       ln_months := '0';
      End Loop;  
 End pro_js9295;
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:14:42
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/7464/
本文WWW.DOC100.NET DOC100.NET版权所有。