千家信息网

oracle max_seq_calc

发表于:2025-02-06 作者:千家信息网编辑
千家信息网最后更新 2025年02月06日,DECLARETYPE 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
千家信息网最后更新 2025年02月06日oracle max_seq_calc

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;


0