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

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日

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘