存储过程if条件判断

只写if V_NUM=4 then 执行SQL可以运行修改字段,

if (V_NUM=4 AND V_STATUS='NO') 条件这样写,就没有修改成功,是为什么呢

create or replace procedure market_procedure

is

    V_NUM NUMBER;

    V_STATUS VARCHAR2(100);

begin 

select count(STATUS)

  INTO V_NUM

  from DIM_STOCK_switch

 where rq = (select max(statistic_date) from ods_stock_market_detail)

   AND STATUS = 'YES';

SELECT STATUS

  INTO V_STATUS

  FROM olap_table_switch_0410

 where SWITCHNAME = 'stock_market';

 if (V_NUM=4 AND V_STATUS='NO') then

    update olap_table_switch_0410  set status='YES' , DATATIME_LASTCHANGE=SYSDATE where SWITCHNAME='stock_market';

commit;

  end if;

  end;

微信图片_20230410165334.png

SQL 要好好学习 发布于 2023-4-10 16:55 (编辑于 2023-4-10 16:56)
1min目标场景问卷 立即参与
回答问题
悬赏:0 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
要好好学习Lv5见习互助
发布于2023-4-12 10:08

存储过程没有问题,是我测试的时候把值改错了

最佳回答
0
Z4u3z1Lv6专家互助
发布于2023-4-10 17:13

image.png

  • 要好好学习 要好好学习(提问者) 不行呢,改成begin报错了
    2023-04-11 08:34 
  • Z4u3z1 Z4u3z1 回复 要好好学习(提问者) SELECT STATUS INTO V_STATUS FROM olap_table_switch_0410 where SWITCHNAME = \'stock_market\'这个查询出来应该不止一个值吧~
    2023-04-11 09:06 
  • 0关注人数
  • 295浏览人数
  • 最后回答于:2023-4-12 10:08
    请选择关闭问题的原因
    确定 取消
    返回顶部