码迷,mamicode.com
首页 > 数据库 > 详细

oracle max_seq_calc

时间:2015-05-06 15:26:44      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:oracle

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

标签:oracle

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!