oracle数据库if语句放for循环报错,求答疑和解决方案,如何解决?

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图

declare
expr number;
begin
for lev in 7..10
loop
if lev:=7 then
expr:=8000;
else if i:=8 then
expr:=11000;
else if i:=9 then
expr:=15000;
else numsum:=20000;
Dbms_Output.put_line(numsum);
end loop;
end;

运行结果及报错内容

img

我的解答思路和尝试过的方法

尝试过把:=改为<、>,依旧报错

我想要达到的结果

plsql语句能实现不同的lev值返回对应的expr

3个错误

  1. if 的语法错误, 不是else if 而是elsif,另外,你没有end if

    if ... then ...
    elsif ... then ...
    else ...
    end if;
    
  2. 冒号加等于号表示赋值,所以这个错了 lev:=7

  3. 后面突然来个i,前面没有声明,或者是写错变量了,numsum这个也是

改成下面这个样子就可以跑通了

declare
expr number;
begin
for lev in 7..10
loop
if lev=7 then
expr:=8000;
elsif lev=8 then
expr:=11000;
elsif lev=9 then
expr:=15000;
else expr:=20000;
end if;
Dbms_Output.put_line(expr);
end loop;
end;
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632