pl/sql 偶数和奇数和块

pl/sql even and odd sum block

我有一个 pl/sql 编程问题:对于 1..50 之间的数字,您需要将偶数乘以 5,将奇数乘以 3,然后计算结果中所有数字的总和。

到目前为止我已经有了这个

DECLARE
ln_num NUMBER :=0;
ln_num1 NUMBER :=0;
ln_num2 NUMBER :=0;

BEGIN
    for i in 1..50 loop

        if mod(i,2) =0 then            
        ln_num:=i*5;

        elsif mod(i,2) = 1 then
        ln_num1:=i*3;

        ln_num2 := ln_num+ln_num1;
        dbms_output.put_line(ln_num2);

        end if;
    end loop;
END;

这给了我最后一个数字列表,但我需要所有数字的总和。我想知道我遗漏了什么以及如何解决这个问题?

谢谢

SQL> DECLARE
  2  ln_num NUMBER :=0;
  3  ln_num1 NUMBER :=0;
  4  ln_num2 NUMBER :=0;
  5
  6  BEGIN
  7      for i in 1..50 loop
  8
  9          if mod(i,2) =0 then
 10          ln_num:=ln_num+i*5;  -- changes
 11
 12          elsif mod(i,2) = 1 then
 13          ln_num1:=ln_num1+i*3;  -- changes
 14
 15
 16          end if;
 17      end loop;
 18      ln_num2 := ln_num+ln_num1;
 19          dbms_output.put_line(' the result is ' || ln_num2);
 20
 21  END;
 22
 23
 24  /
the result is 5125

PL/SQL procedure successfully completed.
  create or replace function odd_even_Numbers(num number)
  return varchar2 is

  value1 number;
  message varchar2(30);
  a number;
  begin
    a:=num;
    loop

      select  abs(REMAINDER(a, 2)) into value1 from dual;
      if (value1=1) then

        message:= 'odd number';
         dbms_output.put_line (a||'-----'||message);
       a:=a+1;

      else

        message:='even number';
        dbms_output.put_line (a||'-----'||message);
          a:=a+1;
      end if;      
      exit when a=20; 

      end loop;
       message:='done well';
      return message;
  end;