首页 > 解决方案 > 在 Oracle 过程中使用 CASE 语句不起作用

问题描述

我写了下面CASE的声明,以便我的逻辑起作用。但它不起作用并给我错误

错误(224,122):PLS-00103:在预期以下情况之一时遇到符号“)”:* & = - + < / > 在 else 结尾是 mod 余数不是 rem 当 <an exponent (**)> <> or != or ~= >= <= <> and or like2 like4 likec || member submultiset 符号“end”被替换为“)”以继续。

下面是我的代码:

V_AMTINMONTH := (CASE V_DATEVAR_VALUE WHEN 'START' THEN V_AMTINMONTH WHEN 'END' THEN (V_AMTINMONTH - V_NOOFDAYSINMONTH + 1));

标签: oraclestored-procedures

解决方案


尝试

v_amtinmonth :=
  CASE
     WHEN v_datevar_value = 'START'
     THEN
        v_amtinmonth
     WHEN v_datevar_value = 'END'
     THEN
        v_amtinmonth - v_noofdaysinmonth + 1
  END;

推荐阅读