首页 > 数据库技术 > 详细

oracle max_seq_calc

时间:2015-05-06 15:24:54      阅读:157      评论:0      收藏:0      [点我收藏+]

DECLARE

   TYPE seq_st_tt IS TABLE OF INT;

   seq_st seq_st_tt := seq_st_tt(20,-10,-5,-3,5,4,-2,7,40);

   tmpsum INT := 0;

   maxval INT :=seq_st(1);

   spos INT := 1;

   epos INT := 1;

   nspos INT := 1;

   nepos INT := 1;

BEGIN

   FOR i IN 1..seq_st.count LOOP

      tmpsum := tmpsum + seq_st(i);

      IF(tmpsum < 0) THEN

         nspos := i + 1;

         nepos := i + 1;

         tmpsum := 0;

      ELSIF(tmpsum >= maxval) THEN

         spos := nspos;

         epos := nepos;

         nepos := nepos + 1;

         maxval := tmpsum;

      ELSE

         nepos := nepos + 1;

      END IF;

  END LOOP;

  dbms_output.put_line(‘the max linear sequence from ‘||spos||‘ to ‘||epos||‘ is ‘||maxval);

END;

   


本文出自 “welcome” 博客,请务必保留此出处http://friendsforever.blog.51cto.com/3916357/1642428

oracle max_seq_calc

原文:http://friendsforever.blog.51cto.com/3916357/1642428

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!