漂泊旅人 2022-03-01 22:09 采纳率: 100%
浏览 32
已结题

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

  • 写回答

2条回答 默认 最新

  • DarkAthena ORACLE应用及数据库设计方案咨询师 2022-03-01 22:32
    关注

    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;
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月10日
  • 已采纳回答 3月2日
  • 创建了问题 3月1日