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

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日

悬赏问题

  • ¥30 Hyper-v虚拟机相关问题,求解答。
  • ¥15 TSM320F2808PZA芯片 Bootloader
  • ¥45 谷歌浏览器出现开发者工具无法显示已创建的,但您可以调试已部署的代码。 状态代码 404, net::ERR HTTP RESPONSE CODE FAILURE
  • ¥15 chatgpt网页版侧边栏和模型切换点击没反应怎么办
  • ¥15 如何解决蓝牙通话音频突发失真问题
  • ¥15 安装opengauss数据库报错
  • ¥15 【急】在线问答CNC雕刻机的电子电路与编程
  • ¥60 在mc68335芯片上移植ucos ii 的成功工程文件
  • ¥15 笔记本外接显示器正常,但是笔记本屏幕黑屏
  • ¥15 Python pandas